如何根据评论ID获取评论文字?
我使用facebook js api,当评论创建时,我想使用ajax在我的数据库中插入评论内容,但是下面的代码没有返回文本内容,我怎样才能获得内容?
在ajax中,我会根据commentID获取内容,如何在FQL中获取内容?
<script type="text/javascript">
FB.Event.subscribe(
'comment.create',
function(href,commentID){
// can only get commentID
// I need to get comment content, how to do ?
$.ajax({
url:'jy_ajax.php',
type:'POST',
data:{
commentID:commentID
},
success:function(){}
});
}
</script>
答案 0 :(得分:1)
如果当前用户已连接到您的应用程序,那么这很容易做到,如果不是,那么我们必须做一些猜测。这是因为comment.create
事件中返回的ID不是公共评论ID - 它是私有ID,因此只有创建者才能检索评论消息。我不知道为什么Facebook这样做了。
FB.Event.subscribe(
'comment.create',
function(commentCreateResponse) {
/* if the user is authed then you can do this */
FB.api( '/' + commentCreateResponse.commentID, function(commentResponse) {
console.log(commentResponse.message);
});
/* if not, then we have grab all the comments and guess */
FB.api('/comments?ids='+commentCreateResponse.href, function(allCommentsResponse) {
var comments = allCommentsResponse[commentCreateResponse.href].comments.data;
var mostRecentComment = false;
for (var i = 0; i < comments.length; i++) {
var comment = comments[i];
if ((false == mostRecentComment) || (comment.created_time > mostRecentComment.created_time)) {
mostRecentComment = comment;
}
}
console.log(mostRecentComment.message);
});
}
);
上面的示例显示了这两种方法 - 您应该删除不需要的方法。
在第一种方法中,当用户连接时,它只是使用注释ID点击Graph API并返回结果。
在第二种方法中,当用户未连接到我们的应用程序时,它会查询所有公共可用评论并查找最新评论,并假设这是用户制作的评论。这只适用于您没有多个用户同时发表评论的环境 - 在这种情况下,结果会出错。
希望有所帮助。