使用Facebook Graph API实现Instagram的分页功能

4
我正在尝试使用Facebook Graph API请求Instagram商家帖子的API。

https://developers.facebook.com/docs/instagram-api/business-discovery

使用Facebook的Graph API Explorer,我正在调用。
    <my_facebook_page_id>?fields=business_discovery.username(<instagram_business_account_username>){media{comments_count,like_count, caption, media_url, media_type,timestamp}}

这将成功返回Instagram商业账户中最近的25篇帖子,以及json中分页光标部分的“after”字段。但是,现在我正在尝试使用某种形式的分页来获取接下来的25篇帖子。我已经了解到Facebook Graph API支持游标和基于时间的分页,但以下文章表明Business Discovery的/media端点仅支持基于游标的分页。

https://developers.facebook.com/docs/instagram-api/reference/user/business_discovery#pagination

我尝试了几种以上查询的变化,试图获取下一个25篇文章,但所有这些查询都返回最近的25篇文章(与上面的初始查询相同)。

以下是我尝试过的一些查询示例。

    <my_facebook_page_id>?fields=business_discovery.username(<instagram_business_account_username>){media{comments_count,like_count, caption, media_url, media_type,timestamp}}&after=<after_code_from_first_call>

    <my_facebook_page_id>?fields=business_discovery.username(<instagram_business_account_username>).after(<after_code_from_first_call>){media{comments_count,like_count, caption, media_url, media_type,timestamp}}

任何有关如何格式化这些查询字符串以执行Instagram媒体对象的分页(使用after/before参数、时间戳或post_ids)的帮助将不胜感激。

谢谢。


我也在想如何使用分页光标来获取下一个“X”个媒体记录。你有成功吗? - user1087973
2个回答

15

经历了许多尝试和错误,我找到了API请求的正确格式如下:

https://graph.facebook.com/v3.0/<my-facebook-page-id>?access_token=<access-token>&fields=business_discovery.username(<accountHandle>){{profile_picture_url,media.after(<pagination-code>).limit(<the-amount-of-posts-to-return>){{id,caption,media_url,media_type,like_count,comments_count,timestamp,permalink}}}}

我还发现没有返回的帖子数量限制(我在测试中一次性成功返回了1000个)

注意:"分页代码"是在进行API调用时提供的"after"代码。


1
我尝试了被接受的答案的解决方案,但它不起作用(可能是因为图形版本的原因)。这是在v17.0上工作的API请求。
https://graph.facebook.com/v17.0/{ig-user-id}?access_token={access-token}&fields=id,business_discovery.username({username}){media.after({pagination-code}){id,comments_count,like_count}}

注意:它还可以与基于光标/时间的分页一起使用,请参阅支持的参数此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接