首页 文章

检索超过150条Instagram评论

提问于
浏览
69

问题

即使媒体有超过150条评论,我希望能够查看所有给定的_341610媒体的评论 . 截至目前,似乎不可能在Instagram网站上查看最近20条关于媒体的评论,如果使用Instagram API ConsoleInstagram 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_idmax_timestamp 的参数,这些参数允许通过检索所述 max_idmax_timestamp 之前的媒体来寻找任何给定用户的最新媒体 . 由于每个注释都带有 created_timeid 属性,因此我尝试为各种注释ID和时间戳添加 max_idmax_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 回答

  • 2

    这里的通用答案是“ no, that's not possible 通过常规 endpoints ” .

    Instagram更新Rate Limits(2015年11月17日之后) . Instagram平台上的所有速率限制均针对每个访问令牌单独控制,并在滑动的1小时窗口中控制 . 实时应用的速率限制高于沙盒模式中的应用 .

    哪个国家在全球背景下的下一个限制

    全局速率限制应用全局速率限制,包括每个访问令牌在1小时滑动窗口中对应用程序进行的所有API调用,而不管特定 endpoints 如何 . 速率限制也适用于无效或格式错误的请求 . 沙箱速率限制:500 /小时实时速率限制:5000 /小时

    另外还有评论 endpoints 的限制:

    特定于 endpoints 的速率限制用于发布的 endpoints (POST或DELETE)具有基于每个 endpoints 应用的速率限制 . 您的OAuth客户端对这些 endpoints 的任何调用也会计入上述全局速率限制 . 沙箱/媒体/媒体id /评论:30 /小时现场/媒体/媒体ID /评论:60 /小时

    如果您的应用超过任何这些速率限制,您将收到HTTP响应代码为 429 (Too Many Requests) 的响应 .

    一旦Instagram平台按 access token 进行控制,您可以使用具有多个访问令牌的多线程来实现更大的限制 . 但它有一些警告:1 . 并非所有内容都可以与多个访问令牌并行,因为上下文会有所不同 . 它可能与Platform PolicyTOS相矛盾 .

  • 9

    这根本不是“hacky” .

    正如Instagram提供的链接,您可以在这里收到所有评论:https://instagram.com/developer/endpoints/comments/

    所有你要做的就是通过Instagram给你的链接循环 . 我这样做了 . 我正在使用Api这样做 .

    public function getUserMediaComments($id, $limit = 0) {
        return $this->_makeCall('media/'.$id.'/comments', true, array('count' => $limit));
      }
    

    $ id是图片的media_id . 如果您使用图片ID预告该功能,您将收到所有评论 .

    当我发现这种方式时,并没有那么难 .

    你也可以这样做,同时为它做好准备 . :

    $comments = json_decode(file_get_contents('https://api.instagram.com/v1/' . 'media/'. $image->id . '/comments?access_token='. $data->access_token));
    

    它都会返回一组图片的注释 .

  • 0

    好的,这将是一个非常“Hacky”的解决方案,我目前没有设置自己这样做(由于家里缺乏ADSL)但我可以提供我将如何处理此问题的分步指南 .

    首先,您需要一个名为"Charles Web Debuging Proxy"的工具

    该网站上有一个关于如何在查尔斯中启用“SSL调试”的教程(这将要求您在移动设备上安装新的“根证书”,以欺骗它认为由查尔斯签署的https事务实际上是签名的由instagram.com)

    现在将您的移动设备设置为通过所述代理路由所有请求(必须在您的本地Wi-Fi网络上安装) .

    转到https://www.google.com并检查charles是否记录了请求和响应 .

    一旦完成设置,您就可以查看Instagram应用程序本身用于生成所述评论页面的API调用 .

相关问题