1

InstagramAPIからJSONを取り戻すために最善を尽くしています。これが、レール内の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

ターミナルに表示されるのは、「レーキが中止されました!ファイルの終わりに達しました」だけです。

Instagramのドキュメントhttp://instagram.com/developer/endpoints/tags/を見て、次のURLをブラウザに貼り付けると、JSONが返されるので、何か間違ったことをしていると確信しています。

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

4

2 に答える 2

4

SSLを含めるようにコードを変更する必要があるHTTPS URLに関係しています

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 のようなものを使用 して、サードパーティのサービスを利用することもできます

于 2012-08-02T20:18:24.537 に答える
1

https を使用しているため、SSL を使用するには net/http を構成する必要があるようです。

代替手段: これを Rails で使用すると、その場で json も解析されます:

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

遊ぶハッシュを返す

于 2012-08-02T20:18:10.163 に答える