【问题标题】:Instagram gem: how to get next page of results?Instagram gem:如何获得下一页结果?
【发布时间】:2012-05-26 09:15:07
【问题描述】:

如何使用 Instagram gem 获得下一页结果?

API 本身的文档说每个结果都有一个pagination 散列传递(见这里:http://instagram.com/developer/endpoints/)。如何使用 gem 访问它?

【问题讨论】:

    标签: ruby-on-rails instagram


    【解决方案1】:

    知道了。我不认为 Instagram 传回的 pagination 哈希是可访问的,但您可以在查询时传入 max_id 选项,以获取下一组旧照片。

    @results = Instagram.user_recent_media(some_user_id, {access_token: token, count: 10, max_id: 197679035065553721})
    

    通过传入max_id(照片的id),它将返回所有比这更早的结果。因此,从第一个查询中获取最旧照片的 id,并将其传入以获取下一页。

    注意:当你得到结果时,图片的 id 格式为:197679035065553721_someuserid。您必须解析出下划线之前的第一位,并将其作为max_id 传递。

    【讨论】:

    • 可以在 API 响应中访问分页。虽然文档没有提到这一点,但当您使用 Instagram gem 时,返回的哈希除了包含 data 项目外,还包含 pagination 项目。
    • 有关结果结构的一般信息,请参阅instagram.com/developer/endpoints。这也提到了支持分页的端点的pagination 属性。
    • 是否可以通过指定每页的响应数(在 php 或 javascript 中)来显示和示例以在下一页加载下一个最旧的 instagram api 集?
    【解决方案2】:
    Instagram.tag_recent_media(params[:q]).pagination
    

    运行该代码,您将看到分页属性。

    【讨论】:

      【解决方案3】:

      我为我自己的一个项目对此进行了研究,最终发现您可以通过在创建客户端时将 no_response_wrapper 设置为 true 来让客户端为您提供分页信息:

      client = Instagram.client(:access_token => accesstoken,
                                :no_response_wrapper => true)
      

      这样您就可以按照 Yigit C. Bacakoglu 的建议在响应中使用 .pagination。

      【讨论】:

        【解决方案4】:

        你可能不走运。如果查看client modules,可以看到这些方法正在返回响应的data 字段,因此pagination 字段不可用。还有an issue 提到回复中缺少分页信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-13
          • 1970-01-01
          • 2020-06-25
          • 2021-08-30
          相关资源
          最近更新 更多