【问题标题】:Can only access sharedposts for some Graph API objects?只能访问某些 Graph API 对象的共享帖子吗?
【发布时间】:2015-09-30 13:05:31
【问题描述】:

我有一个 Facebook 页面的访问令牌。我可以查看该页面的提要,以及该提要中的各个帖子。但由于某种原因,我只能使用 Graph API v2.2 为其中的 一些 请求 /sharedposts 端点。

访问令牌具有 user_postsread_stream 见解。当我请求 shares 字段时,我可以看到不止一个带有共享的帖子,但是当我为其中一些请求 [POST_ID]/sharedposts 时,我只得到一个空的 data 数组作为响应.

这是为什么?有一些我应该注意的问题吗?有点令人沮丧的是,/sharedposts 边缘会返回一些帖子的返回值,但使用相同的访问令牌和 API 版本的其他帖子不会。

【问题讨论】:

    标签: facebook facebook-graph-api facebook-graph-api-v2.2


    【解决方案1】:

    这是一个已知的错误,似乎仍未解决。

    基本上它应该像您预期的那样工作,但即使获得所有必要的许可(甚至对于公共帖子),它也不会返回每个共享的对象。

    您可能希望在此处订阅该错误,以便在问题解决后引起注意:

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

    【讨论】:

      【解决方案2】:

      我刚刚在 lars.schwarz 链接到的错误报告中发布了对此错误的见解/解决方法,但我也会将其粘贴在这里:

      /sharedposts 只会检索已授予您应用访问权限的用户的公开帖子或帖子。但是,端点似乎并没有智能地查询这个。我不确定,但我认为端点的默认限制为 25 个结果。似乎正在发生的事情是端点在 Facebook 的数据库中查询 25 个帖子,然后根据您的应用的权限进行过滤。

      这意味着,如果允许您的应用访问的最新共享帖子深度为 30 个帖子,则端点将返回一个空数据集。如果您的应用被允许访问深度为 15 的帖子和深度为 30 的帖子,则它只会返回深度为 15 的帖子。

      为了解决这个问题,您可以设置一个非常高的限制(我一直使用 2000)。这样做的问题是,如果你的帖子有超过 2000 次分享,你仍然会错过一些东西。不幸的是,您不能将限制设置得太高,因为端点会返回一个错误,告诉您查询更少的数据(即使查询实际上只会返回少数帖子)。因此,我一直将限制设置为 2000,并使用“until”参数按时间顺序浏览共享帖子。

      希望这有助于解决问题。这是一个主要的痛苦,也是一个不完美的解决方案(尽管我认为它完成了 99% 的工作)。我鼓励大家在这里提交错误报告:https://developers.facebook.com/bugs

      这个漏洞似乎已经存在多年了,昨天我被告知他们没有短期计划来修复它。如果我们提出足够多的投诉,也许他们会优先考虑它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-11
        • 2021-06-22
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多