2013-02-28 3 views
1

Я использую твитер-жемчужину для приложения Rails, так что я могу автоматически обновлять свои сообщения в блоге на моем ленте Twitter.Ошибка «не удалось аутентифицировать вас» Ошибка

Я следовал gem readme instructions, бросая это в конфиг/инициализаторов/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, подписавшись мое приложение под моим Твиттере, давая читать записи, писать, и прямой доступ, а затем пытается обновить через консоль 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).

У меня Googled вокруг, но мне не повезло найти других людей в той же ситуации. Удивление, что я делаю что-то не так, или мне просто нужно немного подождать.

Любые идеи?

ответ

2

Есть ли у вас код обратного вызова?

Это случилось со мной с новыми обновлениями твиттер, и даже я не использовал обратного вызова URL из конфигурации приложения, у меня была та же проблема, пока я не обновил его, я закончил добавление

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

Что я даже не использовал для разработки локального хоста, но он начал работать после этого.

В противном случае необходимо обновить вопрос с кодом/камни для щебет AUTH, и настройки, которые вы имеете на твиттере, в том, что мы можем рассмотреть код и пусть вы знаете, если есть что-то worng

+1

Есть! «В противном случае» (после добавления URL-адреса обратного вызова) привело меня к тройной проверке моих настроек oauth, прежде чем я сказал, что они точны, и я понял, что я назвал секретную токенную переменную TWITTER_OAUTH_SECRET вместо правильной TWITTER_OAUTH_TOKEN_SECRET. Фиксация сделала все. Благодаря! – Sasha

Смежные вопросы