Rails - Twitter ::错误:: BadRequest(错误验证数据) - 部署到Heroku之后

时间:2012-11-15 01:36:12

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

在我的应用中,我正在通过以下代码向用户提供推文:

       if twitter = current_user.authentications.find_by_provider("twitter")
        Twitter.configure do |tw|
          tw.consumer_key = "6jaqMt7kE9iVxh8hX0mmtQ"
          tw.consumer_secret = "5ZIydxRBFfEJxc2EzedahIxoeO8g1hZCQVqZFtWWNM"
          tw.oauth_token = twitter.token
          tw.oauth_token_secret = twitter.token_secret
        end
        Twitter.update(params[:tweet])

它在我的localhost中运行良好。但是现在我已经将我的应用程序部署到了heroku,我正在尝试发送推文,但是在heroku日志中它说:

2012-11-15T01:30:32+00:00 app[web.1]: Completed 500 Internal Server Error in 494ms
2012-11-15T01:30:32+00:00 app[web.1]: 
2012-11-15T01:30:32+00:00 app[web.1]: Twitter::Error::BadRequest (Bad Authentication data):
2012-11-15T01:30:32+00:00 app[web.1]: 
2012-11-15T01:30:32+00:00 app[web.1]: 
2012-11-15T01:30:32+00:00 app[web.1]:   app/controllers/posts_controller.rb:12:in `create'

我该怎么做才能解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:0)

两件事:

  1. 在您注册的Twitter应用程序的设置中,将您的回调URL更新到您的生产服务器位置。

  2. 如果您正在使用herokuapp.com的子域名,请猜测,您正处于向Twitter提供大量其他API请求的池中。 Proxy your API requests through Apigee

  3. 初始化然后通过控制台在Heroku上迁移数据库:

    heroku run rake db:setup

    heroku run rake db:migrate

  4. (通常只是rake db:migrate工作,但在这种情况下我必须同时执行)

    来自Twitter dev discussions

答案 1 :(得分:-1)

我已经找到了Twitter身份验证,并根据我的经验编写了一个教程:http://www.orhancanceylan.com/rails-twitter-and-facebook-authentications-with-omniauth-and-devise/