【问题标题】:How do I use ruby get JSON back from Instagram API如何使用 ruby​​ 从 Instagram API 获取 JSON
【发布时间】:2012-08-02 20:05:11
【问题描述】:

我正在尽我所能从 instagram API 中获取 JSON。这是我在 Rails 中的 rake 任务中尝试的代码。

require 'net/http'


url = "https://api.instagram.com/v1/tags/snow/media/recent?access_token=522219.f59def8.95be7b2656ec42c08bff8a159a43d06f"
resp = Net::HTTP.get_response(URI.parse(url))
puts resp.body

我最终在终端中得到的只是“rake aborted! 到达文件末尾”

如果您查看 instagram 文档 http://instagram.com/developer/endpoints/tags/ 并将以下 URL 粘贴到浏览器中,您将返回 JSON,所以我确定我做错了什么。

https://api.instagram.com/v1/tags/snow/media/recent?access_token=522219.f59def8.95be7b2656ec42c08bff8a159a43d06f

【问题讨论】:

    标签: ruby ruby-on-rails-3 instagram


    【解决方案1】:

    这与 HTTPS 网址有关,您需要修改代码以包含 SSL

    require "net/https"
    require "uri"
    
    uri = URI.parse("https://api.instagram.com/v1/tags/snow/media/recent?access_token=522219.f59def8.95be7b2656ec42c08bff8a159a43d06f")
    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)
    
    response = http.request(request)
    puts response.body
    

    或者,您可以使用 https://github.com/jnunemaker/httparty 之类的东西来使用 3rd 方服务

    【讨论】:

    【解决方案2】:

    看起来您需要配置 net/http 以使用 SSL,因为您使用的是 https。

    替代方案:将它与 Rails 一起使用,它也会动态解析 json:

    ActiveSupport::JSON.decode(open(URI.encode(url)))

    返回一个哈希值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多