限制来自/馈送Facebook Graph API的帖子数量

限制来自/馈送Facebook Graph API的帖子数量,facebook,facebook-graph-api,Facebook,Facebook Graph Api,当我使用/{page\u id}/feed?access\u token=xxxx时,这将为我提供页面上的所有帖子,包括用户和页面。我想限制和控制这些帖子。我想设置一些约束条件,比如: 时间戳(即在特定时间戳之后获取帖子) 帖子id(在特定帖子之后获取帖子) 因为从feed获取所有帖子是不相关的,也是有效的。有什么方法可以做到这一点吗?您可以使用 GET /{page_id}/feed?limit={nr_of_posts_to_return}&since={timestamp} 能够

当我使用/{page\u id}/feed?access\u token=xxxx时,这将为我提供页面上的所有帖子,包括用户和页面。我想限制和控制这些帖子。我想设置一些约束条件,比如:

  • 时间戳(即在特定时间戳之后获取帖子)
  • 帖子id(在特定帖子之后获取帖子)
  • 因为从feed获取所有帖子是不相关的,也是有效的。有什么方法可以做到这一点吗?

    您可以使用

    GET /{page_id}/feed?limit={nr_of_posts_to_return}&since={timestamp}
    
    能够限制结果的数量并指定开始时间戳。请查看此处的参考资料:

    对于第二个用例,您需要使用批处理APIimho,因为对于单个图形API请求,您无法对特定的
    帖子进行过滤。相反,您需要使用批处理API将其拆分为两个查询,如下所述:

    请求将如下所示:

    curl \
        -F 'access_token={your_access_token}' \
        -F 'batch=[{ "method":"GET","name":"get-post","relative_url":"{your_post_id}?fields=created_time"},{"method":"GET","relative_url":"{your_page_id}/feed?since={result=get-post:$.created_time}&limit={nr_of_posts_to_return}"}]' \
        https://graph.facebook.com/
    
    在图形浏览器中,您必须将HTTP方法更改为
    Post
    ,然后添加一个名为
    batch
    的新字段。到目前为止,请将URL留空。将其粘贴为
    batch
    值:

    [{ "method":"GET","name":"get-post","relative_url":"​293088074081904_400071946716849?fields=created_time"},{"method":"GET","relative_url":"293088074081904/feed?since={result=get-post:$.created_time}&limit=1"}]
    

    这至少对我有效。

    对于其他正在寻找解决方案的人,在“评论”和“回复”级别完成的“自”似乎被忽略。这意味着这不是我的解决方案

    托比提供的查询将提供第一个“自”之后的所有帖子,但这些帖子中的每一条评论和回复,无论您将它们的“自”设置为什么

    除此之外,如果您希望搜索新的评论,不管帖子的年龄,这也会失败。例如:删除第一个'since'并更改为limit=1000,并且仅使用'since'作为字段请求评论,这将返回最后1000篇文章以及所有这1000篇文章的所有评论


    也就是说,感谢Tobi占用您的时间,并向我展示了如何在单个函数调用中获得所需的一切。每次我都可以尝试解析完整的记录集。(可能流量太大!)

    是的,post\u id不正确。更新了我的答案。不客气,但“我在FQL中所做的其他无法用graph复制的事情”是什么意思?即使在一个批处理中,您也可以将FQL与“普通”图形API请求混合使用。。。此外,请注意,FQL仅在2015年4月30日之前有效!对于Tobi,FQL在2.0版中仍然可用,但在API的下一个版本中将不可用。给出此早期警告是为了让开发人员能够尽快开始从FQL迁移到Graph API。我们强烈建议开发人员不要基于FQL构建新体验。绝大多数用例都可以使用Graph API实现,包括字段扩展和批处理请求。例如
    /102099916530784/posts如何?limit=10&fields=id、message、comments.since(1400112000).limit(10).fields(message、created_time,如_count、comments.fields(message、created_time))
    你说得对,表示v2.0将在两年内可用,并表示FQL将成为v2.0的一部分。我认为您应该将Tobi的答案标记为正确答案。:)没有足够的声誉。只有6个。需要15个。