Derzeit kommunizieren ich mit der API, die dreibeinige OAuth-Sicherheit verwendet.Getting "RuntimeError: SSL-Sitzung wurde nicht initialisiert" Fehler rails
Für die Kommunikation brauche ich jedes Mal Zugriffstoken. Access Token ist ab dem Erstellungsdatum für 1 Jahr gültig.
Ich habe es in der Datenbank gespeichert (serialisiertes Objekt der AccessToken-Klasse).
Aber während API-Aufruf bekomme ich folgenden Fehler. Hier ist meine Grundströmung
1) Holen Sie sich das access_token
consumer = OAuth::Consumer.new API_KEY,
API_SECRET,
{
site: 'https://example.com',
header: { Accept: 'application/nd.v3+json' },
http_method: :get,
request_token_url: @request_token_uri,
access_token_url: @access_token_uri,
authorize_url: @authorizerequest_token_uri
}
puts '***** Fetching request token *****'
request_token = consumer.get_request_token({}, 'oob')
puts "Request Token received - #{request_token.token}"
puts
puts 'Goto to url mentioned below to authorize. Paste the access token verifier'
puts request_token.authorize_url
verifier = gets.chomp
puts
puts
puts '***** Fetching access token *****'
access_token = request_token.get_access_token(oauth_verifier: verifier)
2) Bewahren Sie die access_token in Datenbank
access_token_user.rb
class AccessTokenUser < ActiveRecord::Base
belongs_to :user
serialize :access_token
end
atu = AccessTokenUser.create(user_id: 1, access_token: access_token)
3) Holen Sie das Token und uns für den Aufruf von A PI
access_token = AccessTokenUser.find_by(user_id: 1).access_token
access_token.get('/organizations')
Während die Organisationen Detail Holen ich folgende Fehler bekommen
RuntimeError: SSL Session wasn't initialized.
from /home/test/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/net/http.rb:916:in `time'
from /home/test/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/net/http.rb:916:in `connect'
from /home/test/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
from /home/test/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/net/http.rb:851:in `start'
from /home/test/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/net/http.rb:1373:in `request'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/oauth-0.4.7/lib/oauth/consumer.rb:161:in `request'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/oauth-0.4.7/lib/oauth/tokens/consumer_token.rb:25:in `request'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/oauth-0.4.7/lib/oauth/tokens/access_token.rb:12:in `request'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/oauth-0.4.7/lib/oauth/tokens/access_token.rb:27:in `get'
from (irb):18
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/railties-4.0.13/lib/rails/commands/console.rb:90:in `start'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/railties-4.0.13/lib/rails/commands/console.rb:9:in `start'
from /home/test/.rvm/gems/ruby-2.0.0-p643/gems/railties-4.0.13/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Kann mir jemand mitteilen, wie kann ich dieses Problem beheben?
wir nicht Verifizierer mehrfach verwenden können. –
hat Ihre Lösung versucht, aber den Fehler "OAuth :: Unauthorized: 400 Bad Request" erhalten. –
Ohne einen vollständigen Backtrace und den zugehörigen Code zu sehen, ist es schwierig zu debuggen. Jetzt erhalten Sie einen 400-Fehler anstelle von RuntimeError: SSL-Sitzung wurde nicht initialisiert, so dass der Fehler wahrscheinlich von der API kommt, mit der Sie eine Verbindung herstellen. Sie sollten die Dokumentation dieser API überprüfen und ermitteln, warum sie 400 zurückgibt. – Jarred