问题
即使媒体有超过150条评论,我希望能够查看所有给定的_341610媒体的评论 . 截至目前,似乎不可能在Instagram网站上查看最近20条关于媒体的评论,如果使用Instagram API Console或Instagram API Libraries,最近的150条评论将返回,没有分页选项或查看补充评论 .
我曾经尝试过什么
当然,我首先在提供的控制台和我自己的环境中尝试了文档化的media comment query . 在这两种情况下,最多返回150条评论 . 难倒,我开始在网上寻找更多信息 .
彻底阅读了Instagram API Documentation,测试了Instagram API Console中的各种 endpoints ,并阅读了Instagram标签中的各种StackOverflow问题以及几个Instagram主题的Instagram API Google Group问题,我想知道是否有可能无法记录我可以尝试的内容 .
user recent media endpoint文档包含 max_id
和 max_timestamp
的参数,这些参数允许通过检索所述 max_id
或 max_timestamp
之前的媒体来寻找任何给定用户的最新媒体 . 由于每个注释都带有 created_time
和 id
属性,因此我尝试为各种注释ID和时间戳添加 max_id
和 max_timestamp
(两者都在一起)的参数,以尝试翻阅注释 . 我的尝试都没有奏效 .
除非有人提出其他建议,否则我现在处于停滞状态 .
具体例子
使用Instagram API Console,我采取了以下步骤来尝试获取this photo的所有注释 .
-
为
OAuth2
令牌验证了自己的身份 -
为
coltonlhaynes
保留用户搜索查询以获取用户id: 9610843
-
使用户最近的媒体查询用户ID:
9610843
以获取最新媒体 -
收集有关最新媒体的信息(以上链接的照片)
-
media
id: 698057751201132903_9610843
-
评论
count: 1375
-
对媒体ID:
698057751201132903_9610843
进行媒体评论查询以获取最新评论 -
收集有关最近评论的信息
-
created time: 1397460230
-
评论
id: 698269477955776593
-
使用以下附加查询参数字符串对媒体ID:
698057751201132903_9610843
进行媒体评论查询,以尝试翻阅评论,但收到与步骤#6相同的结果 -
?max_timestamp=1397460230
-
?max_id=698269477955776593
-
?max_timestamp=1397460230&max_id=698269477955776593
-
?max_id=698269477955776593&max_timestamp=1397460230
请注意
据我所知,这个问题没有解决方案,但是自Instagram开发团队has stated以来他们将不再监控谷歌集团而将会监控StackOverflow,我就把它放在这里 .
3 回答
这里的通用答案是“ no, that's not possible 通过常规 endpoints ” .
Instagram更新Rate Limits(2015年11月17日之后) . Instagram平台上的所有速率限制均针对每个访问令牌单独控制,并在滑动的1小时窗口中控制 . 实时应用的速率限制高于沙盒模式中的应用 .
哪个国家在全球背景下的下一个限制
另外还有评论 endpoints 的限制:
如果您的应用超过任何这些速率限制,您将收到HTTP响应代码为
429 (Too Many Requests)
的响应 .一旦Instagram平台按
access token
进行控制,您可以使用具有多个访问令牌的多线程来实现更大的限制 . 但它有一些警告:1 . 并非所有内容都可以与多个访问令牌并行,因为上下文会有所不同 . 它可能与Platform Policy和TOS相矛盾 .这根本不是“hacky” .
正如Instagram提供的链接,您可以在这里收到所有评论:https://instagram.com/developer/endpoints/comments/
所有你要做的就是通过Instagram给你的链接循环 . 我这样做了 . 我正在使用Api这样做 .
$ id是图片的media_id . 如果您使用图片ID预告该功能,您将收到所有评论 .
当我发现这种方式时,并没有那么难 .
你也可以这样做,同时为它做好准备 . :
它都会返回一组图片的注释 .
好的,这将是一个非常“Hacky”的解决方案,我目前没有设置自己这样做(由于家里缺乏ADSL)但我可以提供我将如何处理此问题的分步指南 .
首先,您需要一个名为"Charles Web Debuging Proxy"的工具
该网站上有一个关于如何在查尔斯中启用“SSL调试”的教程(这将要求您在移动设备上安装新的“根证书”,以欺骗它认为由查尔斯签署的https事务实际上是签名的由instagram.com)
现在将您的移动设备设置为通过所述代理路由所有请求(必须在您的本地Wi-Fi网络上安装) .
转到https://www.google.com并检查charles是否记录了请求和响应 .
一旦完成设置,您就可以查看Instagram应用程序本身用于生成所述评论页面的API调用 .