限制来自/提供Facebook Graph API的帖子数量

kaw*_*a21 2 facebook facebook-graph-api

当我使用/ {page_id}/feed?access_token = xxxx时,这会向我提供页面上的所有帖子,包括用户和页面.我想限制和控制帖子.我想提出如下限制:

  1. 时间戳(即在特定时间戳之后获取帖子)
  2. 发布ID(在特定帖子后发帖)

因为从Feed中获取所有帖子是无关紧要且无效的.有没有办法实现这个目标?

Tob*_*obi 10

您可以使用

GET /{page_id}/feed?limit={nr_of_posts_to_return}&since={timestamp}
Run Code Online (Sandbox Code Playgroud)

能够限制结果数量并指定起始时间戳.看看这里的参考:

对于您的第二个用例,您需要使用批处理API imho,因为使用单个图谱API请求您无法对特定进行过滤Posts.相反,您需要使用Batch 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/
Run Code Online (Sandbox Code Playgroud)

在Graph Explorer中,您必须将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"}]
Run Code Online (Sandbox Code Playgroud)

这至少对我有用.