2016-06-05 13 views
0

Ich versuche, Kampagnen-Statistiken von Clickbank API in Ruby zu ziehen. Wenn ich den Beispielcode Clickbank zur Verfügung stelle. Ich erhalte den folgenden Fehler:nicht initialisierte Konstante Net :: HTTPS (NameError)

uninitialized constant Net::HTTPS (NameError). What am I missing?

Beispielcode.

require 'net/http' 
require 'net/https' 

http = Net::HTTPS.new('api.clickbank.com') 
http.use_ssl = false 
path = '/rest/1.3/orders/list' 

headers = { 
    'Authorization' => '<<DEVKEY>>:<< APIKEY>>', 
    'Accept' => 'application/json' 
} 

resp, data = http.get(path, nil, headers) 

puts 'Code = ' + resp.code 
puts 'Message = ' + resp.message 
resp.each {|key, val| puts key + ' = ' + val} 
puts data 

Ja habe ich meine dev und api-Schlüssel in

+0

Warum versuchen Sie, "Net :: HTTPS" zu verwenden und SSL zu deaktivieren? –

Antwort

1

Verwendung Net:HTTP und aktivieren Sie SSL statt Net::HTTPS verwenden und SSL zu deaktivieren.

Beispiel:

http = Net::HTTP.new('api.clickbank.com') 
http.use_ssl = true 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
+0

Bitte erläutern Sie die downvote –

0

Sie eigentlich nicht wollen, ssl deaktivieren, wie die API erfordert. Ich konnte es wie so arbeiten erhalten auf der Grundlage der Dokumentation http hier: http://ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html

require 'net/http' 

uri = URI('https://api.clickbank.com/rest/1.3/orders/list') 
req = Net::HTTP::Get.new(uri) 
# set headers on the request 
req['Authorization'] = '<<DEVKEY>>:<< APIKEY>>' 
req['Accept'] = 'application/json' 
# perform the request 
resp, data = Net::HTTP.start(uri.hostname, uri.port) {|http| 
    http.request(req) 
} 

puts 'Code = ' + resp.code 
puts 'Message = ' + resp.message 
resp.each {|key, val| puts key + ' = ' + val} 
puts data 
+0

Progressing aber diesen Fehler jetzt: -Code = 400 Message = Bad Request date = Sonne, 5. Juni 2016 03.59.25 GMT server = Apache content-length = 362 Verbindung = schließen content-type = text/html; charset = iso-8859-1 –

+0

Ihre Frage war über diese SSL-Fehlermeldung. Ich denke, meine Antwort bringt dich darüber hinweg. Ich habe keinen API-Schlüssel und kann daher keine tatsächlichen Anrufe testen. Hier ist die Dokumentation für die Liste api https://api.clickbank.com/rest/1.3/orders2, die alle verschiedenen Parameter auflistet, die Sie senden müssen. Ein 400 bedeutet in der Regel, dass Sie einige Parameter auf der Anfrage fehlen oder bereitstellen schlechte Authentifizierungsinformationen Sie müssen auch einen echten Devkey füllen. – usbsnowcrash