当我使用/ {page_id} / feed?access_token = xxxx时,这会向我提供页面上的所有帖子,包括用户和页面。我想限制和控制帖子。我想提出像:
这样的约束因为从Feed中获取所有帖子是无关紧要且无效的。有没有办法实现这个目标?
答案 0 :(得分:9)
您可以使用
GET /{page_id}/feed?limit={nr_of_posts_to_return}&since={timestamp}
能够限制结果数量并指定开始时间戳。看看这里的参考文献:
对于您的第二个用例,您需要使用批处理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/
在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"}]
这对我来说至少有用。
答案 1 :(得分:2)
对于寻求解决方案的其他人来说,它似乎是'因为'完成评论'并且“回复”#39;水平被忽略。这意味着这不适合我。
Tobi提供的查询将在第一个'之后提供所有帖子。但是这些帖子中的每条评论和回复,无论你设置了什么'因为'到。
除此之外,如果您希望搜索新评论,无论帖子的年龄如何,这也会失败。例如:删除第一个'自'并更改为limit = 1000并且仅使用'作为字段请求评论,因为' ,这将返回所有1000个帖子的最后1000个帖子和所有评论。
那就是说,谢谢Tobi的时间,并告诉我如何在一个函数调用中获得我需要的一切。我可以每次尝试解析完整的记录集。 (可能过多的流量!)