我目前正在写一个网站,我需要一些关于facebook集成的帮助。 我需要一个函数(PHP或JS,都会有帮助),可以检查给定用户是否共享我的网站, 我无法找到如何写一个。 你能指点我正确的方向吗?
答案 0 :(得分: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>
答案 1 :(得分:5)
使用JavaScript SDK, FB.ui()
and the feed
dialog,,您可以提示您的用户在Facebook上分享网址。此对话框提供回调功能,以便您可以判断帖子是否成功
从上述链接解除的代码示例......
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
对话框之外共享了您网站的网址。
使用read_stream
权限可以完成不需要对话回调的更复杂的替代方法。获得该权限后,您可以扫描用户过去的帖子,看看他是否曾在他的墙上分享您的网站...
请注意,如果用户在其他人的墙上或页面上分享了您的网站,这将无效...