5

Ruby 2.0.0 および Rails 4.0.0 で提供された API を使用して imgur から画像を取得しようとしています。Ruby 2.0.0のドキュメントにリストされているように、さまざまな方法でhttpリクエストを作成しようとしましたが、役に立ちませんでした。

コードは次のとおりです。

require 'net/http'
require 'net/https'
def imgur
  headers    = {
    "Authorization" => "Client-ID " + my_client_id
  }
  path       = "/3/gallery/image/#{img_id}.json"
  uri = URI("https://api.imgur.com"+path)
  request, data = Net::HTTP::Get.new(path, headers)

  response = Net::HTTP.new(uri.host, uri.port).start {|http| http.request(request) }
  puts "response:"
  p response
  puts response
end

whereimg_idmy_client_idは、適切な値でハードコードされているだけです。(imgurメソッドは、私のサイトのルート URL に対応するコントローラー アクション内で呼び出されます)

これは、実行したときに返される応答rails sです (したがって、localhost:3000 を使用しています)。次に、ルート URL、localhost:3000 にアクセスします (これは、を呼び出すアクションを呼び出しますimgur)。

#<Net::HTTPBadRequest 400 Bad Request readbody=true>
#<Net::HTTPBadRequest:0x007f8a6ce0da78>

アップデート:

また、これはうまくいきました:

curl --header "Authorization: Client-ID my_client_id" https://api.imgur.com/3/gallery/image/7x98w9T.json

(繰り返しmy_client_idますが、実際のクライアント ID でハードコーディングされています)。Rubyで動作させるには...

誰でもこれを行う正しい方法を知っていますか?

4

2 に答える 2