Tôi muốn thực hiện yêu cầu oAuth trong Ruby. Tôi đã lấy một số ví dụ nhưng không ai trong số họ sử dụng oauth_token_secret and oauth_token
để đưa ra yêu cầu, họ chỉ sử dụng consumer_key
và consumer_secret
để nhận oauth_token_secret
và oauth_token
. Nhưng tôi đã có oauth_token_secret
và oauth_token
.Để thực hiện cuộc gọi API có mã thông báo oAuth
Ví dụ, chương trình này tôi đã cố gắng để sử dụng
require 'rubygems'
require 'oauth'
consumer = OAuth::Consumer.new(consumer_key, consumer_secret,
{
:site=> "https://www.google.com",
:scheme=> :header,
:http_method=> :post,
:request_token_path => "/accounts/OAuthGetRequestToken",
:access_token_path => "/accounts/OAuthGetAccessToken",
:authorize_path=> "/accounts/OAuthAuthorizeToken",
:signature_method=>"RSA-SHA1"},
# :private_key_file=>PATH_TO_PRIVATE_KEY
)
request_token = consumer.get_request_token()
puts "Visit the following URL, log in if you need to, and authorize the app"
puts request_token.authorize_url
puts "When you've authorized that token, enter the verifier code you are assigned:"
verifier = gets.strip
puts "Converting request token into access token..."
access_token=request_token.get_access_token(:oauth_verifier => verifier)
puts "access_token.token --> #{access_token.token}" # But I initially have it
puts "access_token.secret --> #{access_token.secret}" # But I initially have it
Trong trường hợp của tôi, có 4 phím bí mật:
consumer_key = "anonymous"
consumer_secret = "anonymous"
oauth_token_secret = "fdsfdsfdfdsfds"
oauth_token = "fdsfdsfdfdsfdsdsdsdsdsdsds"
Vì vậy, những gì tôi cần làm là, để thực hiện một yêu cầu API vào một số url nhất định với một số tham số bổ sung và mã thông báo oAuth và để nhận câu trả lời.
Làm cách nào để thực hiện điều đó trong Ruby?
Tôi không cần dùng OAuth :: AccessToken vì tôi đã có oauth_secret và oauth_token. –
@AlanDert Tôi biết. Sử dụng đối tượng bạn nhận được ở đây: 'access_token = request_token.get_access_token (: oauth_verifier => verifier)' – oldergod
Trình xác minh là gì? Bạn có thể cho ví dụ hoàn chỉnh được không? Hãy nhận biết rằng Typhoeus có lỗi, tôi không thể sử dụng nó. –