我目前正在写一个网站,我需要一些关于 facebook 集成的帮助。我需要一个函数(PHP 或 JS,两者都会有所帮助)来检查给定用户是否共享了我的网站,但我不知道如何编写。你能指出我正确的方向吗?
问问题
10984 次
2 回答
7
首先,您必须在标签之后立即加载 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>
于 2012-06-21T13:22:21.853 回答
5
使用JavaScript SDKFB.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);
这是完成您需要的最简单的方法。但是,它不允许您测试是否有人在您的feed
对话之外共享了您网站的 URL。
read_stream
可以通过使用权限来完成不需要对话回调的更复杂的替代方案。获得该权限后,您可以扫描用户过去的帖子,看看他是否曾经在他的墙上分享过您的网站...
请记住,如果用户在别人的墙上或页面上共享您的网站,这将不起作用...
于 2012-06-21T13:22:35.973 回答