繁体   English   中英

尝试获取身份验证令牌时出现400错误-Twitter omniauth

[英]Getting 400 error when trying to get auth token - twitter omniauth

我有一个Rails应用程序,其中我正在尝试实现twitter omniauth,因此许多用户可以从该应用程序内的许多Twitter帐户中发布信息/从中获取信息。 我完全按照该主题进行跟踪 (直到大约3分钟),但仍收到400 http响应。

在我的gemfile中:

gem 'omniauth'
gem 'omniauth-twitter'

/config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'],
end

在我看来,我自然有<%= link_to "Connect", "/auth/twitter" %>并且在我的routes.rb中(这是与railscast的唯一区别,因为我没有使用它来注册/登录用户而是发布到Twitter):

get 'auth/:provider/callback', to: 'twitter_accounts#create'
get 'auth/failure', to: redirect('/')

单击视图中的链接会导致以下错误:

OAuth::Unauthorized
400 Bad Request

据我所见,我的api密钥和密码是正确的,因此似乎未正确设置http标头。 Rails错误页面上的请求和响应参数为空。 任何帮助将不胜感激。

因此,像往常一样,整天把头发弄干后,我在将问题发布到这里的那一刻就开始工作。 问题是它没有获取我的环境变量。 我直接在字符串中粘贴以查看是否是问题所在,但是这还需要重新启动Rails应用程序才能生效,但我没有这样做。

只是为了扩展rorykoehler的答案,您可能还需要重新启动终端以使其选择OAuth密钥和机密的环境变量。 如果您将它们存储在bash配置文件中,则可以运行

    source ~/.bash_profile

在您的终端中将其捡起。 如果您在像RubyMine或Visual Studio Code这样的IDE中运行代码,则可能需要重新启动IDE。

只是改变

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'],
end

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, 'TWITTER_KEY', 'TWITTER_SECRET'
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM