Attualmente sto comunicando con l'API che utilizza la sicurezza OAuth a tre vie.Ottenere le notifiche di errore "RuntimeError: SSL Session non inizializzato"
Per la comunicazione, ho bisogno di accedere al token ogni volta. Il token di accesso è valido per 1 anno dalla data di creazione.
L'ho memorizzato nel database (oggetto serializzato della classe AccessToken).
Ma mentre faccio una chiamata API sto ricevendo errore. Ecco il mio flusso di base
1) Prendi l'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) Conservare l'access_token nel database
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) Prendi il token e noi per chiamare A PI
access_token = AccessTokenUser.find_by(user_id: 1).access_token
access_token.get('/organizations')
durante il recupero dettaglio organizzazioni sto ottenendo seguente errore
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>'
Qualcuno può farmi sapere come posso risolvere questo problema?
non possiamo usare verificatore più volte. –
ha provato la tua soluzione ma ha ricevuto l'errore 'OAuth :: Non autorizzato: 400 Bad Request'. –
Senza vedere un backtrace completo e il codice di accompagnamento, è difficile eseguire il debug. Tuttavia, ora stai ricevendo un errore 400 invece di RuntimeError: SSL Session non è stato inizializzato, quindi è probabile che l'errore provenga dall'API a cui ti stai connettendo. È necessario controllare la documentazione di tale API e determinare il motivo per cui restituisce 400. – Jarred