使用Ruby中的imgur API获取图像(在Rails上)

Ped*_*ori 5 ruby ruby-on-rails imgur

我正在尝试使用提供的API与Ruby 2.0.0和Rails 4.0.0从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
Run Code Online (Sandbox Code Playgroud)

在哪里img_idmy_client_id只是硬编码适当的值.(imgur在与我的站点的根URL对应的控制器操作中调用方法)

这是我运行时得到的响应rails s(所以我使用localhost:3000),然后访问根URL,localhost:3000(它调用调用的动作imgur):

#<Net::HTTPBadRequest 400 Bad Request readbody=true>
#<Net::HTTPBadRequest:0x007f8a6ce0da78>
Run Code Online (Sandbox Code Playgroud)

更新:

此外,这工作:

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

(再次,my_client_id用我的实际客户端ID进行硬编码).现在让它在Ruby上工作......

有人知道正确的方法吗?

xax*_*xon 6

您需要启用https才能进行https呼叫.

http.use_ssl = true
Run Code Online (Sandbox Code Playgroud)

我知道这已经弄清楚,但我想我会添加一个明确的答案.