gpt4 book ai didi

ruby-on-rails - 使用 oauth 和 twitter ruby​​ gems 时不断出现 OAuth::Unauthorized 错误

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:59 25 4
gpt4 key购买 nike

我正在使用 ruby​​ twitter gem 和 oauth 来访问用户的 twitter 帐户。在我的代码中,我有:

unless @user.twitter_authd?
oauth = Twitter::OAuth.new('token', 'secret')
session[:twitter_request_token] = oauth.request_token.token
session[:twitter_request_secret] = oauth.request_token.secret
@twitter_auth_url = oauth.request_token.authorize_url
end

token 和 secret 插入了我实际的 token 和 secret。当我点击指向@twitter_auth_url 的链接时,我被带到 Twitter 并被要求授予访问权限。我单击允许,然后推特将我重定向到我的回调 URL http://www.mydomain.com/twitter_callback/?oauth_token=fmy2aMvnjVgaFrz37bJ4JuB8r5xN79gsgDQRG4BNY然后点击此代码:

oauth = Twitter::OAuth.new('token', 'secret')

logger.info("session[:twitter_request_token] = #{session[:twitter_request_token]}")
logger.info("session[:twitter_request_secret] = #{session[:twitter_request_secret]}")

oauth.authorize_from_request(session[:twitter_request_token], session[:twitter_request_secret])
session[:twitter_request_token] = nil
session[:twitter_request_secret] = nil

@user.update_attributes({
:twitter_token => oauth.access_token.token,
:twitter_secret => oauth.access_token.secret,
})

redirect_to root_path

Twitter 请求 token 和密码设置得很好。但是我最终遇到授权错误:

 OAuth::Unauthorized in MainController#twitter_callback

401 Unauthorized

RAILS_ROOT: /Users/TAmoyal/Desktop/RoR_Projects/mls
Application Trace | Framework Trace | Full Trace

/Library/Ruby/Gems/1.8/gems/oauth-0.3.4/lib/oauth/consumer.rb:167:in `token_request'
/Library/Ruby/Gems/1.8/gems/oauth-0.3.4/lib/oauth/tokens/request_token.rb:14:in `get_access_token'
/Library/Ruby/Gems/1.8/gems/erwaller-twitter-0.6.13.1/lib/twitter/oauth.rb:29:in `authorize_from_request'
/Users/TAmoyal/Desktop/RoR_Projects/mls/app/controllers/main_controller.rb:70:in `twitter_callback'

代码在这一行失败:

oauth.authorize_from_request(session[:twitter_request_token], session[:twitter_request_secret])

当它尝试获取访问 token 时。可以看authorize_from_request的源码here .我不确定为什么会这样。有人有想法吗?

最佳答案

晚会有点晚了,但我自己也遇到了同样的问题。我将问题追溯到我在 Twitter 中设置 OAuth 应用程序。我最初没有指定回调 URL,因为我不确定。

设置好 Rails 应用程序后,我回头发现 Twitter 认为我是桌面应用程序,因为我没有指定回调 URL。将其更改为网站并输入回调 URL 后,我不再收到 400 秒。

关于ruby-on-rails - 使用 oauth 和 twitter ruby​​ gems 时不断出现 OAuth::Unauthorized 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com