5

我正在尝试使用 Devise/OmniAuth 设置 Twitter 登录,遵循最新的 RailsCast。我已经注册了 Twitter 开发者应用,使用的回调 url: myiphere:port/users/auth/twitter

我已经按照 RailsCast 上的 T 进行了所有操作,但是每次单击Sign In With Twitter链接时,我都会立即获得OAuth::Unauthorized 401 Unauthorized on the myiphere:port/users/auth/twitter page.

我想我已经使用正确定义了密钥export TWITTER_CONSUMER_KEY=MYKEYINSERTEDHERE export TWITTWR_CONSUMER_SECRET=MYSECRETINSERTEDHERE rails server。我已经尝试了大多数我可以在互联网上找到的解决方案,但都无济于事。几乎所有的答案都是为了在登录后返回他们的网站,我无法进入任何类型的 Twitter 屏幕,只有/users/auth/twitter页面上的 401 错误。

4

5 回答 5

17

我有同样的问题;就我而言,我正确设置了 API 密钥,但没有在“设置”选项卡下的https://dev.twitter.com/apps/的 Twitter 设置中设置回调 URL。

奇怪的是,回调 URL 似乎不需要指向任何有用的地方。Twitter 显然只是利用它的存在作为某种信号。

omn​​iauth-twitter 提供的调试信息有待改进。

于 2012-10-03T22:00:45.597 回答
3

我通过从初始化程序 DEVISE.RB 中删除括号和 ENV 来使其工作:

config.omniauth :twitter, "APP_ID", "APP_SECRET"

我在 DEV Twitter 设置中指定的回调:

http://www.mysite.com/users/auth/twitter/callback

在路线.rb

devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks"}

我的登录链接:

<%= link_to "Log in with Twitter", user_omniauth_authorize_path(:twitter) %>
于 2014-02-10T10:53:22.793 回答
1

在这里回答我自己的问题,似乎我只需要添加实际的键来代替TWITTER_CONSUMER_KEYand TWITTER_CONSUMER_SECRET,而不是我最初尝试添加它们的方式。我还ENV[]从每一个中删除了,我认为这可能会有所帮助。

于 2012-08-03T07:45:16.417 回答
0

您需要添加 figaro gem 才能使用视频中的环境变量。该链接将引导您完成如何设置它们。

http://railsapps.github.io/rails-environment-variables.html

于 2013-08-05T21:35:26.207 回答
0

对我来说,问题是未选中“允许此应用程序用于使用 Twitter 登录”(在应用程序页面 > 设置选项卡下)

于 2013-12-13T00:35:27.973 回答