使用 Facebook Graph API 对 Instagram 进行分页

问题描述 投票:0回答:3

我正在尝试使用 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)的任何帮助,我们将非常感激。

谢谢。

facebook-graph-api instagram
3个回答
17
投票

经过多次尝试错误,我发现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 调用时提供的“之后”代码。


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}}

注意:它也适用于光标/时间/基于分页,请参阅支持的参数这里


0
投票

我已于 2024 年 6 月 4 日测试了接受的答案(@Tom C),它仍然有效。它能够控制每个请求的帖子数量限制,如果您的帖子数量很大且速率限制较低,这会非常有用。顺便说一句,limit 和 after 的位置也可以更改:

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