【发布时间】:2012-05-26 09:15:07
【问题描述】:
如何使用 Instagram gem 获得下一页结果?
API 本身的文档说每个结果都有一个pagination 散列传递(见这里:http://instagram.com/developer/endpoints/)。如何使用 gem 访问它?
【问题讨论】:
如何使用 Instagram gem 获得下一页结果?
API 本身的文档说每个结果都有一个pagination 散列传递(见这里:http://instagram.com/developer/endpoints/)。如何使用 gem 访问它?
【问题讨论】:
知道了。我不认为 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 传递。
【讨论】:
data 项目外,还包含 pagination 项目。
pagination 属性。
Instagram.tag_recent_media(params[:q]).pagination
运行该代码,您将看到分页属性。
【讨论】:
我为我自己的一个项目对此进行了研究,最终发现您可以通过在创建客户端时将 no_response_wrapper 设置为 true 来让客户端为您提供分页信息:
client = Instagram.client(:access_token => accesstoken,
:no_response_wrapper => true)
这样您就可以按照 Yigit C. Bacakoglu 的建议在响应中使用 .pagination。
【讨论】:
你可能不走运。如果查看client modules,可以看到这些方法正在返回响应的data 字段,因此pagination 字段不可用。还有an issue 提到回复中缺少分页信息。
【讨论】: