2

Rails アプリに twitter gem を使用しているため、ブログの投稿が自動的に Twitter フィードに更新されます。

gem の readme の指示に従い、これを 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 キーをリセットしました)。

私はグーグルで検索しましたが、同じ状況にある他の人を見つけることができませんでした. 何か間違ったことをしているのか、それとも少し待つ必要があるのか​​ 疑問に思っています.

何か案は?

4

1 に答える 1

2

コールバック URL を提供しましたか?

Twitterの新しい更新でそれが起こりました。アプリ構成からコールバックURLを使用していなくても、更新するまで同じ問題があり、追加を終了しました

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

ローカルホストの開発にも使用していませんでしたが、その後は機能し始めました。

それ以外の場合は、Twitter 認証用のコード/ジェム、および Twitter の設定で質問を更新してください。コードを確認し、何か摩耗があるかどうかをお知らせします。

于 2013-02-28T23:17:12.503 に答える