【问题标题】:Twitter "could not authenticate you" errorTwitter“无法对您进行身份验证”错误
【发布时间】:2013-02-15 07:22:00
【问题描述】:

我正在将 twitter gem 用于 Rails 应用程序,这样我就可以将我的博客文章自动更新到我的 twitter 提要中。

我关注gem readme instructions,将其放入 config/initializers/twitter.rb 文件中

Twitter.configure do |config|
  config.consumer_key = YOUR_CONSUMER_KEY
  config.consumer_secret = YOUR_CONSUMER_SECRET
  config.oauth_token = YOUR_OAUTH_TOKEN
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

将这些变量更新到 Heroku,在我的 twitter 帐户下注册我的应用程序,为帐户提供读取、写入和直接访问权限,然后尝试通过 heroku 控制台进行更新,如下所示:

Twitter.update("Testing Twitter integration")

很遗憾,我收到了这个错误:

Twitter::Error::Unauthorized: Could not authenticate you

(接下来是这些可能无用的细节):

from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/response/raise_error.rb:21:in `on_complete'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/response.rb:9:in `block in call'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/response.rb:63:in `on_complete'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/response.rb:8:in `call'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/request/url_encoded.rb:14:in `call'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/request/multipart.rb:13:in `call'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/request/multipart_with_file.rb:14:in `call'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/connection.rb:247:in `run_request'
    from /app/vendor/bundle/ruby/1.9.1/gems/faraday-0.8.6/lib/faraday/connection.rb:112:in `post'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:81:in `request'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:70:in `post'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/api/utils.rb:82:in `object_from_response'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter/api/tweets.rb:129:in `update'
    from /app/vendor/bundle/ruby/1.9.1/gems/twitter-4.5.0/lib/twitter.rb:52:in `method_missing'
    from (irb):2
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'irb(main):003:0> 

Twitter 肯定至少部分地对我进行了身份验证,因为早些时候,当我没有切换到读/写时,它抱怨说

Twitter::Error::Unauthorized: Error processing your OAuth request: Read-only application cannot POST

(为了解决这个问题,我编辑了我的设置并重置了我的 OAuth 密钥)。

我在 Google 上四处搜索,但没有找到处于相同情况的其他人。想知道我是否做错了什么,或者我是否只需要等待一下。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku twitter


    【解决方案1】:

    您是否提供了回调地址?

    在 twitter 的新更新中发生了这种情况,即使我没有使用应用配置中的回调 url,我也遇到了同样的问题,直到我更新它,我结束了添加

    http://www.my-website.com/auth/twitter/callback

    我什至没有将其用于 localhost 开发,但之后它就开始工作了。

    否则,请使用您的 twitter auth 代码/宝石以及您在 twitter 上的设置更新问题,因为我们可以查看代码并让您知道是否有问题

    【讨论】:

    • 知道了! “否则”(在添加回调 url 之后)导致我在说它们准确之前对我的 oauth 设置进行了三次检查,我意识到我调用了秘密令牌变量 TWITTER_OAUTH_SECRET 而不是正确的 TWITTER_OAUTH_TOKEN_SECRET。修复它使一切正常。谢谢!
    猜你喜欢
    • 2011-08-04
    • 2014-05-01
    • 2021-04-14
    • 2022-01-01
    • 2023-03-15
    • 2017-07-11
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多