我正在考虑在我的网站上实施 Facebook 的评论插件。问题是我需要知道我网站上用户评论过的页面。
我已经阅读了 Facebook 的文档,但我没有找到适当的权限来了解这一点。
是否可以知道用户评论了哪些 URL?在这种情况下,我的应用需要哪些权限?
我正在考虑在我的网站上实施 Facebook 的评论插件。问题是我需要知道我网站上用户评论过的页面。
我已经阅读了 Facebook 的文档,但我没有找到适当的权限来了解这一点。
是否可以知道用户评论了哪些 URL?在这种情况下,我的应用需要哪些权限?
我知道您已经接受了答案,但我认为这会对您有所帮助。
您可以首先在此处生成Facebook 评论的代码。
对于您在其中实现评论插件的每个页面,您将提供href
用户正在阅读/访问的页面,因为它是插件所要求的。
您可以使用Javascript SDK来监听Facebook 事件,特别是您有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>
称呼
graph.facebook.com/USER_ID/feed&fields=link
对于您要查询的每个用户。此调用返回 id、name 和链接字段,该字段是评论对象的 url。并非所有帖子都有链接字段,因此您需要检查是否为空。然后,您可以比较链接字段以查找与您的网址匹配的内容。
提要包含来自评论框插件的评论帖子,仅在用户发布评论时选中“发布到 Facebook”框的情况下。
您需要向用户询问 read_stream 权限。
这一切都假设您知道用户是谁。您需要跟踪您身边的这些用户,因为无法查询 FB 的 API 以获取“在我的网站上发表评论的用户”。