ruby on rails - OmniAuth invalid_response with Twitter



使用OmniAuth、Rails 3.1.0.rc2、mysql2、ruby 1.9.2.p0。

当重定向回我的网站时,我仍然会得到这个。

/auth/failure?message=invalid_response

Omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, 'XXXXX', 'XXXXXXXXXXXXX'

我检查了100x的钥匙,它们是正确的。仍在获取无效响应。我看到的任何问题似乎都不起作用。

如有任何帮助,我们将不胜感激!

谢谢。[:

如果需要任何新信息,只需询问即可。

如果您在控制器中使用此request.env['rack.auth'],请将其更改为request.env['omniauth.auth']-此处对OmniAuth 进行了解释

这个解决方案对我有效。

我也遇到了类似的问题。事实证明,我的Users:OmniauthCallbacksController#twitter方法:中确实存在一些运行时错误

我在nil对象上的一个不存在的方法上调用了一个方法,这引发了一个异常,但design或omniauth都接受了这个异常。

最后,我将整个方法体封装在begin/recue子句中,并打印出异常。

但是,如果您收到无效凭据,那么twitter颁发的oauth密钥可能已经过期,因此您的用户应该再次调用/users/auth/twitter。

你确定你没有把钥匙放错顺序吗?

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, TW_CONSUMER_KEY, TW_CONSUMER_SECRET
end

如果没有,让我们用Twitter宝石快速测试您的凭据:

# twitter.rb -- Test credentials
require "rubygems"
require "twitter"
# Get a user's most recent status update
puts Twitter.user_timeline("YOUR_USER").first.text
Twitter.configure do |config|
  config.consumer_key = TW_CONSUMER_KEY
  config.consumer_secret = TW_CONSUMER_SECRET
end
# Update your status
Twitter.update("I Love ruby!")

如果它有效,那么你的证书是好的。。。你应该继续研究Rails。。。

感谢Christian的回答。这对我很有帮助。但如果它在尝试更新、转发等时出现401错误,你就必须包括

  config.oauth_token = 'MY_OAUTH_TOKEN'
  config.oauth_token_secret = 'MY_OAUTH_TOKEN_SECRET'

到Twitter客户端配置。看看https://dev.twitter.com/discussions/1522

所以最后你会有

Twitter.configure do |config|
  config.consumer_key = 'TW_CONSUMER_KEY'
  config.consumer_secret = 'TW_CONSUMER_SECRET'
  config.oauth_token = 'MY_OAUTH_TOKEN'
  config.oauth_token_secret = 'MY_OAUTH_TOKEN_SECRET'   
end

它对我有效

当然,你的推特应用程序必须具有访问级别=读写。如果你想更新状态、转发等,你必须在dev.twitter.com中更改它。

你试过omniauth twitter gem吗??https://github.com/arunagw/omniauth-twitter

相关内容

  • 没有找到相关文章

最新更新