2012-01-02 11 views
0

Twitter Rubyの宝石を使ったウェブサイトを作った。ローカルホストでは、Twitterの宝石をうまく動作させることができますが、私はHerokuに展開するとTwitter経由でログインできません。Rails/Heroku:実行時に変数を読み込むコードを設定する

は、HerokuのはCONSUMER_KEYと私はそれをした

$ cd myapp 
$ heroku config:add S3_KEY=some_key_here S3_SECRET=some_secret_here 

SECRET CONSUMERの追加について(Amazon S3の変数を使用して)説明しています。

ログインしてテストすると、URLにこれが表示されます。このURLは私がなどCONSUMER_KEYを追加するのを忘れたときに(ローカルホスト上)と同じであるので、私は enter image description here

Herokuのは、提供しています...私はHerokuの上で適切にCONSUMER_KEYとCONSUMER_SECRETを設定しなかったことを考えています実行時に変数を読み取るためにconfig/initalizersにファイルを設定する方法について詳しく説明していますが、私はGithubプロジェクトをフォークして、既にこれを設定していますので、https://github.com/sferik/sign-in-with-twitter/blob/master/config/initializers/omniauth.rbを設定しています。私は、Twitter経由でサインインしようとすると、Herokuので

Set up your code to read the vars at runtime in config/initializers/s3.rb: 

AWS::S3::Base.establish_connection!(
    :access_key_id  => ENV['S3_KEY'], 
    :secret_access_key => ENV['S3_SECRET'] 
) 

UPDATE

エラーメッセージがログに記録します。注、私はローカルホスト経由でサインインすることができます。

2012-01-02T20:01:43+00:00 app[web.1]: 
2012-01-02T20:01:43+00:00 app[web.1]: Started GET "/auth/twitter?utf8=%E2%9C%93" for 64.46.7.250 at 2012-01-02 20:01:43 +0000 
2012-01-02T20:01:44+00:00 app[web.1]: 
2012-01-02T20:01:44+00:00 app[web.1]: OAuth::Unauthorized (401 Unauthorized): 
2012-01-02T20:01:44+00:00 app[web.1]: 
+3

あなたのキーと秘密をよりよく隠しておきたい場合は、読むのがとても簡単です。 – Robin

+0

エラーページが表示されたら、Herokuログのエラーメッセージは何ですか? –

+0

@BrandonTilleyエラーメッセージでOPを更新しました。 – Leahcim

答えて

1

これは2つのうちの1つです。

鍵が正しく設定されていないか、またはTwitter OAuthコールバックが戻ってきた経路が正しくない(正しく処理されていないため)。

チェックするのが最も簡単で、あなたのHerokuのの設定です:

heroku config --app your_app_name 

これはCONSUMER_KEYCONSUMER_SECRETを表示する必要があり(私はS3_KEYの使用を想定していますし、上記のS3_SECRETはプレースホルダです)

この設定は正しいはずです、それでも動作しない場合は、アプリケーションに戻ってくるリクエストの処理を掘り下げる必要があります。それは処理/認証/ツイッターのようですが、このステップでは正しくないものがあります。

+0

ありがとうございました! CONSUMER_SECRETの最後に1文字が欠落していました...私はHerokuの設定を確認することは決して考えていませんでした... – Leahcim

関連する問題