Ich versuche, ein Bild von Imgur mit der bereitgestellten API mit Ruby 2.0.0 und Rails 4.0.0 zu ziehen. Ich habe versucht, eine HTTP-Anfrage auf verschiedene Arten zu erstellen, wie in den Ruby 2.0.0-Dokumenten aufgeführt, ohne Erfolg.Get Bild mit Imgur API in Ruby (on Rails)
Hier ist der Code:
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
wo img_id
und my_client_id
sind nur mit den entsprechenden Werten fest einprogrammiert. (imgur
Methode wird innerhalb einer Controller-Aktion aufgerufen, die der Root-URL meiner Site entspricht)
Dies ist die Antwort, die ich bekomme, wenn ich rails s
ausführen (so verwende ich localhost: 3000) und dann besuchen Sie die Root-URL, localhost: 3000 (die die Aktion tut aufrufen, die imgur
ruft):
#<Net::HTTPBadRequest 400 Bad Request readbody=true>
#<Net::HTTPBadRequest:0x007f8a6ce0da78>
UPDATE:
auch dies funktioniert:
curl --header "Authorization: Client-ID my_client_id" https://api.imgur.com/3/gallery/image/7x98w9T.json
(wiederum ist my_client_id
mit meiner tatsächlichen Client-ID hardcoded). Jetzt um es auf Ruby zu arbeiten ...
Wer weiß den richtigen Weg, dies zu tun?
wenn Sie curl verwenden oder wget mit diesen Parametern funktioniert es? – rogerdpack
das funktioniert: $ curl --header "Autorisierung: Client-ID XXXXXXXXX" https://api.imgur.com/3/gallery/7x98w9T.json wo die X sind meine Client-ID ... die Imgur Image-ID ist eine für ein Bild wählte ich zufällig –
in den Kommentar oben wollte ich api.imgur.com/3/gallery/image/7x98w9T.json schreiben (obwohl ich getestet, was ich tatsächlich in den obigen Kommentar geschrieben und es funktioniert auch ...) –