Hiện tại, tôi đang liên lạc với API sử dụng bảo mật OAuth 3 chân.Lỗi đường dẫn "RuntimeError: SSL Session không được khởi tạo"
Để liên lạc, tôi cần mã thông báo truy cập mỗi lần. Mã thông báo truy cập có giá trị trong 1 năm kể từ ngày tạo.
Tôi đã lưu trữ nó trong cơ sở dữ liệu (đối tượng được tuần tự hóa của lớp AccessToken).
Nhưng trong khi thực hiện cuộc gọi API, tôi nhận được lỗi sau. Đây là dòng chảy của tôi cơ bản
1) Lấy 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) Lưu trữ các access_token trong cơ sở dữ liệu
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) Tìm nạp mã thông báo và cho chúng tôi để gọi A PI
access_token = AccessTokenUser.find_by(user_id: 1).access_token
access_token.get('/organizations')
Trong khi lấy các chi tiết tổ chức Tôi nhận được lỗi sau
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>'
bất cứ ai có thể cho tôi biết làm thế nào tôi có thể khắc phục vấn đề đó?
chúng ta không thể sử dụng xác minh nhiều lần. –
đã thử giải pháp của bạn nhưng nhận được lỗi "OAuth :: Không được phép: 400 yêu cầu không hợp lệ". –
Nếu không nhìn thấy một backtrace đầy đủ và mã đi kèm, rất khó để gỡ lỗi. Tuy nhiên, hiện tại bạn đang gặp phải lỗi 400 thay vì RuntimeError: Phiên SSL không được khởi tạo, do đó lỗi có khả năng đến từ API bạn đang kết nối. Bạn nên kiểm tra tài liệu của API đó và xác định lý do tại sao nó quay trở lại 400. – Jarred