通过API向状态发布新评论

时间:2012-02-21 12:50:01

标签: facebook facebook-comments

我有一个status_id并尝试发布新评论:

POST https://graph.facebook.com/STATUS_ID/comments {message: "text" }

我得到了结果

{
 "error": {
   "message": "(#200) Cannot access object_id: 10150593515092107", 
   "type": "OAuthException", 
   "code": 200
  }
}

我可以为/喜欢做同样的POST,但它确实有用。

如果我向Photo添加评论,它也可以。然后我可以使用照片的object_id,但状态上不存在这样的字段。

2 个答案:

答案 0 :(得分:5)

经过两天的奋斗,我找到了答案,至少对于常规职位。

Facebook上每篇文章的object_id分为两部分:[author id]_[post id]您可以在永久链接中清楚地看到它:https://www.facebook.com/permalink.php?story_fbid=[post id]&id=[author id]

所以当你使用完整的id时,它似乎有效!

现在真正的问题是为什么facebook不具备财产记录?!?我可以写一封愤怒的信来浪费我的时间。

它仍然不适用于视频或照片,例如因为我不知道它们的正确ID是什么,并且它不会写在任何地方。所以如果你成功请告诉我。

答案 1 :(得分:0)

这是一个实用的解决方案我知道,对于某些对象,需要用户标识,有些则不是(评论和喜欢)。

    var message = 'WHATEVER MESSAGE';

FB.api('/'+object_id+'/comments','post',{
    message:message
},function(r){
    if (!r || r.error) {
        // if it fails,send it back with the fbid on it
        FB.api('/'+fbme.id+'_'+object_id+'/comments','post',{
            message:message
        },function(r){
            if (!r || r.error) {
                //  if it fails again send back to server side for failure recording 
                $.post("actions.php",{
                    req:'badPost',
                    oid:object_id
                },function(n){

                });

            }
        });             
    } 
});

这对我有用