代码之家  ›  专栏  ›  技术社区  ›  TroySteven

自定义内部Facebook应用程序图表API不返回页面的帖子评论

  •  0
  • TroySteven  · 技术社区  · 5 年前

    我正在尝试创建一个Facebook应用程序,它可以在我创建的商业页面的帖子上下拉评论。我已经成功地创建了这个应用程序,并通过OAuth连接了我的Facebook页面。然而,页面上的评论都没有通过。如有任何帮助,请参阅下面的代码。

    https://graph.facebook.com/v3.2/{pageId}/?access_token={accessToken}&fields=id,name,posts
    

    回应:

    {
        "id": "{pageId}",
        "name": "Page Name",
        "posts": {
            "data": [
                {
                    "created_time": "2016-01-15T19:46:28+0000",
                    "message": "POST 1",
                    "id": "47829695884833182_111061999222282539"
                },
                {
                    "created_time": "2016-01-15T19:45:56+0000",
                    "message": "POST 2",
                    "id": "4734458296958848182_111061922795615892"
                }
        }
    }
    

    如果使用以下端点,也会发生同样的情况:

    https://graph.facebook.com/v3.2/{pageId}/feed?access_token={accessToken}
    

    或者

    https://graph.facebook.com/v3.2/{pageId}/posts?access_token={accessToken}
    

    我找到了一个引用,显示我可以通过此终结点获取评论:

    https://graph.facebook.com/v3.2/{pageId}/comments?access_token={accessToken}
    

    不过,我得到了以下答复:

    {
        "error": {
            "message": "(#100) Tried accessing nonexisting field (comments) on node type (Page)",
            "type": "OAuthException",
            "code": 100,
            "fbtrace_id": "EN938TNAHM6"
        }
    }
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   04FS    5 年前

    除了最后一个请求,你没有 询问 任何地方的评论。在最后一个例子中,您试图请求对页面对象本身的评论,这不是一件事。

    您需要在feed或posts端点上征求意见:

    /{pageId}/feed?fields=comments
    
    /{pageId}/posts?fields=comments
    

    /{pageId}?fields=id,name,posts{comments}
    

    (除了默认id之外,您可能还需要在posts的其他字段中列出逗号分隔的- posts{message,comments,...} )

        2
  •  0
  •   TroySteven    5 年前

    我可以使用以下请求获得评论:

    https://graph.facebook.com/{post_id}/comments?access_token={accessToken}&summary=true
    

    post_id看起来像这样- 570425547575_57045425233226

    你必须通过帖子而不是页面来获取评论,所以首先你需要打电话获取所有的帖子,然后为每个帖子打电话获取评论。