我正在尝试使用Instagram Business Discovery API从某个公共页面获取帖子统计信息。
以沐浴和身体工作(https://www.instagram.com/bathandbodyworks)为例。
GET graph.facebook.com
17895695668004550?fields=business_discovery.username(bathandbodyworks){followers_count,media_count,media{timestamp,like_count,comments_count}}
这将给我以下响应:
{
"business_discovery": {
"followers_count": 3526159,
"media_count": 3536,
"media": {
"data": [
{
"timestamp": "2018-05-16T20:00:54+0000",
"like_count": 28925,
"comments_count": 530,
"id": "17917935010179826"
},
(24 posts data omitted...)
"paging": {
"cursors": {
"after": "QVFIUlBNak5fNTc3eThl..." (a very long string)
}
}
}
现在,这只给了我最近的25个帖子,我相信这是Facebook设置的每个请求的限制。
如果我想加载接下来的 25 个帖子,我该怎么办?
在YouTube数据API中,每个请求的限制也是50个,但提供了一个"nextPageToken"来加载下一个50个帖子。我想这里的情况是一样的?
我还在这个Facebook API文档中发现,也许我可以添加一个光标字符串,例如:&after=QVFIUlBNak5fNTc3eThl...
,
但这行不通。
任何建议将不胜感激,谢谢!
business_discovery的分页与Facebook略有不同 分页。
没有next
和previous
网址。
您需要添加光标after
如下例所示:
https://graph.facebook.com/v2.12/xxxx?fields=business_discovery.username(jacqehoward){id,name,username,website,profile_picture_url,biography,followers_count,media_count,media.after(QVFIUlZA5aTR5NTE4Y24tNW90VGZAPTVBtb0NpOEFPTlNLeklmVTEtUDZAfVnE0YnBhUVNOQ3BDaktzNHJBTENhTmVYLUV2SGJPZAVAxZA09hQ2NhUGdnUGFjMTNn){id,caption,comments_count,like_count,media_type,media_url,owner,timestamp}}
注意:
media.after(after_cursor){media_fields}
如果要从business_discovery
分页到末尾,则必须添加after
光标,直到只有previous
光标的响应。这是您到达第一篇文章的标记。
自上次回答以来,Facebook可能已经进行了一些更新,因此业务发现格式对我不起作用。我不得不用access_token
打电话。
我发现以下模式可以工作:
https://graph.facebook.com/v15.0/{your-user-id}/media?fields=id,like_count,comments_count,timestamp&limit=25&after={after}&access_token={access_token}
您可以根据需要调整字段。