我正在考虑在我的网站上实施Facebook的评论插件。问题是我需要知道用户评论过的网站页面。
我已阅读Facebook的文档,但我没有找到适当的权限来了解这一点。
是否可以知道用户评论了哪些网址?在这种情况下,我的应用需要哪些权限?
答案 0 :(得分:2)
我知道你已经接受了答案,但我认为这会对你有帮助。
您可以先生成Facebook Comments here的代码。
对于您实施评论插件的每个页面,您将提供用户正在阅读/访问的页面的href
,这是插件所需的。
您可以使用Javascript SDK收听Facebook events,以获取有comment.create
事件的评论,每次发表评论时都会触发该事件。此事件将response
对象传递给其回调函数,该函数包含先前提到的href
以及刚刚生成的注释的commentID
。因此,您可以轻松跟踪用户评论的页面(网址)。
示例(了解我们如何收听comment.create事件):
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR_APP_ID', // App ID
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here, this is where we listen to events
FB.Event.subscribe('comment.create',
function(response) {
alert('You commented on the URL: ' + response.href + 'CommentID: ' + response.commentID);
// do an ajax call to server to store user,commentID,href info if you require
}
);
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
答案 1 :(得分:1)
致电
graph.facebook.com/USER_ID/feed&fields=link
为您要查询的每个用户。此调用返回id,name和链接字段,该字段是注释对象的URL。并非所有帖子都有链接字段,因此您需要检查null。然后,您可以比较链接字段以查找与您的网址匹配。
仅当用户在发布评论时选中“发布到Facebook”复选框时,Feed才会包含评论框插件中的评论帖。
您需要向用户询问read_stream权限。
这一切都假设您知道用户是谁。您需要跟踪那些用户,因为无法在“我网站上发表评论的用户”中查询FB的API。