如何使用Graph API将新评论发布到社交评论框中?

时间:2011-10-19 20:08:12

标签: facebook facebook-graph-api

我有facebook社交评论框。如何通过图形API发表评论呢?

3 个答案:

答案 0 :(得分:7)

我可以给你这个问题的一半答案,但我自己还需要另一半。您可以通过查找 post_fbid 在社交评论框中发布对现有评论的回复。为此,您可以使用FQL,例如:

https://api.facebook.com/method/fql.query?query=SELECT post_fbid, id FROM comment WHERE object_id IN (SELECT comments_fbid FROM link_stat WHERE url ='[ PAGE_URL ]')&access_token=[ ACCESS_TOKEN ]

此查询需要通过带有PAGE_URL的escape()运行,然后用于HTTP GET请求:

https://api.facebook.com/method/fql.query?query=SELECT%20post_fbid%2C%20id%20%0A%20%20%20%20%20%20%20%20FROM%20comment%20%0A%20%20%20%20%20%20%20%20WHERE%20object_id%20IN%20%0A%20%20%20%20%20%20%20%20%20%20(SELECT%20comments_fbid%20%0A%20%20%20%20%20%20%20%20%20%20%20FROM%20link_stat%20%0A%20%20%20%20%20%20%20%20%20%20%20WHERE%20url%20%3D'http%3A%2F%2Fexample.com')&access_token=[ ACCESS_TOKEN ]

使用 post_fbid ,您可以通过HTTP POST进行回复:

https://graph.facebook.com/[ POST_FBID ]/comments/?access_token=[ ACCESS_TOKEN ]&message=[ MESSAGE]

现在发布新评论到最近使用HTTP POST工作的页面this

http://graph.facebook.com/comments/?ids=[ PAGE_URL ]&access_token=[ ACCESS_TOKEN ]&message=[ MESSAGE]

但目前这种情况一直在回归:

{
  "error": {
    "message": "An unknown error has occurred.", 
    "type": "OAuthException"
  }
}

我希望这有点帮助,如果任何人都可以发布一些亮点,如果发布这样的新评论甚至可能,我将不胜感激。

答案 1 :(得分:2)

似乎不可能,也永远不会:

  

此功能从未也无法使用。

     

此案例已添加错误消息:“评论可能不是   添加到评论插件“

https://developers.facebook.com/bugs/164794086987157

答案 2 :(得分:-3)

非常简单,因为您在使用发布流令牌获取access_token后发布在用户Feed上

我假设您使用PHP SDK,如果您需要其他让我知道

您只需第4步,但我会在第1步到第3步中为您提供更多详情,以便您明白并做得很清楚

第1步

获取用户访问令牌

        $token = $facebook->getAccessToken();
        echo "</br>" . 'Access_Token:' . $token;

第2步
设置默认访问令牌和配置文件

        $facebook->setAccessToken($token);

第3步
编译帖子

    $WallPost = array(
    'message' => 'hey this app is cool!!',
    'link' => $canvas_page,
    'caption' => 'caption',
    'description' => 'Test Description',
            );  // you can also use 'picture', 'description', 'source'.... 

第4步
发布到墙上或您的社交评论插件

        $response = $facebook->api('/me' . '/feed','POST',$WallPost);

由于