无法使用oauth_verifier获取访问令牌,不断收到401错误

时间:2012-07-17 02:24:26

标签: ruby-on-rails twitter oauth twitter-oauth

我看到很多关于同样问题的问题,但我找不到解决办法,所以我问一个问题,以确保我没有错过任何一件事。

在Twitter上,我将callback_url设置为'https:// my_app_url /'。

# consumer
@consumer = OAuth::Consumer.new('consumer_id', 
                                'secret_key',
                                :site => 'https://api.twitter.com')

# request_token
@request_token = @consumer.get_request_token(:oauth_callback => "https://my_app_url/?state=#{state}")

# then get the user to log in via
login_url = @request_token.authorize_url

# I have a params[:oauth_token] and params[:oauth_verifier] in return
# I don't know what the oauth token is for
# I then should be able to get an access token

# all oauth calls are done in an object so @request_token has been conserved.
@access_token = @request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])

# then it happens.
# => 401 Unauthorized

我不知道为什么要筹集401。有没有我失踪的一步? 我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:1)

get_request_token为您提供临时OAuth令牌,以便在OAuth身份验证流程中对您进行身份验证。 OAuth验证程序证明用户授权应用程序。为了获得将用于所有经过身份验证的请求的最终OAuth令牌,您必须将此最后一次提交给get_access_token

有关更多信息,请考虑阅读处理此问题的官方Twitter文档:https://dev.twitter.com/docs/auth/using-oauthhttps://dev.twitter.com/docs/auth/implementing-sign-twitter以了解该过程)