【发布时间】:2012-03-06 00:19:18
【问题描述】:
我正在尝试构建一个“喜欢”特定标签 instagram 上所有最近照片的快速 hack。
我已通过身份验证并使用 JSON gem 将 API 中的 JSON 转换为 Ruby 哈希,如下所示:
def get_content (tag_name)
uri = URI.parse("https://api.instagram.com/v1/tags/#{tag_name}/media/recent? access_token=#{@api_token}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
json_output = http.request(request)
@tags = JSON.parse(json_output.body)
end
这会输出一个带有数组的哈希作为键,就像原始 JSON 一样嵌套(例如 http://instagr.am/developer/endpoints/tags/)
我正在尝试迭代并检索照片的所有“id”。
但是当我使用每种方法时:
@tags.each do |item|
puts item["id"]
end
我收到一个错误:
instagram.rb:23:in `[]': can't convert String into Integer (TypeError)
from instagram.rb:23:in `block in like_content'
from instagram.rb:22:in `each'
from instagram.rb:22:in `like_content'
from instagram.rb:42:in `<main>'
【问题讨论】:
-
您确定数据是您认为的那样吗?看起来您可能对不正确的类型做出了假设。
-
尝试
p @tags.class, @tags以更深入地了解@tags的结果。