我正在编写一个网站,需要关于Facebook集成的帮助。 我需要一个函数(PHP或JS均可),可以检查特定用户是否分享了我的网站, 但我不知道如何编写。 您能否指点我正确的方向?
我正在编写一个网站,需要关于Facebook集成的帮助。 我需要一个函数(PHP或JS均可),可以检查特定用户是否分享了我的网站, 但我不知道如何编写。 您能否指点我正确的方向?
首先,在你的标签后面加载Facebook SDK:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : "YOUR APP ID",
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : false, // parse XFBML
perms : 'read_stream',
access_token : "USER ACCESS TOkEN",
frictionlessRequests : true
});
};
// Load the SDK Asynchronously
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/pt_BR/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<script type="text/javascript">
function shareOnFacebook() {
FB.ui(
{
method : 'feed',
display : 'iframe',
name : 'name',
link : 'http://www.linktoshare.com',
picture : 'http://www.linktoshare.com/images/imagethumbnail.png',
caption : 'txt caption',
description : 'txt description',
access_token : 'user access token'
},
function(response) {
if (response && response.post_id) {
// HERE YOU CAN DO WHAT YOU NEED
alert('OK! User has published on Facebook.');
} else {
//alert('Post was not published.');
}
}
);
}
</script>
那么你应该这样使用:
<a href="#" onclick="shareOnFacebook();">Share on facebook</a>
FB.ui()
和 feed
对话框, 您可以提示您的用户在 Facebook 上分享一个 URL。该对话框提供了回调函数,以便您可以确定帖子是否成功发布。 var obj = {
method: 'feed',
link: 'https://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
name: 'Facebook Dialogs',
caption: 'Reference Documentation',
description: 'Using Dialogs to interact with users.'
};
function callback(response) {
document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
}
FB.ui(obj, callback);
这是实现您需求的最简单方法。但不能测试别人是否在对话框外分享了您网站的URL。
一个更复杂的替代方案不需要对话框回调,可以利用read_stream
权限来完成。一旦获得该权限,就可以扫描用户的过去帖子,看他是否曾经在自己的墙上分享了您的网站...
请记住,如果用户在其他人的墙上或页面上分享了您的网站,则此方法将无法正常工作...