2012-01-02 44 views
0

讀變量我做了使用Twitter的紅寶石創業板網站。在本地主機上,我可以使Twitter的gem工作正常,但是當我將它部署到Heroku時,我無法通過Twitter登錄。導軌/ Heroku的:設置代碼在運行時

Heroku的提供有關添加CONSUMER_KEY和CONSUMER SECRET

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

我這樣做的指令(使用Amazon S3變量)。

然後,當我去考登錄,我得到這個在URL中。此URL是一樣的,當(在本地主機上)我忘了加CONSUMER_KEY等,所以我想,我並沒有設立CONSUMER_KEY和CONSUMER_SECRET正確在Heroku ... enter image description here

提供的Heroku有關設置文件中的config/initalizers在運行時讀取變量的進一步細節,但我認爲GitHub的項目我叉狀,然後調整已經有此設置https://github.com/sferik/sign-in-with-twitter/blob/master/config/initializers/omniauth.rb所以我不知道發生了什麼事。

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'] 
) 

更新Heroku的日誌

錯誤消息時,我嘗試通過Twitter來簽到。請注意,我可以通過本地主機登錄。

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 2012-01-02 19:56:30

+0

當您收到錯誤頁面時,Heroku日誌中的錯誤消息是什麼? – 2012-01-02 19:59:06

+0

@BrandonTilley我用錯誤信息更新了OP。 – Leahcim 2012-01-02 20:07:10

回答

1

這可能是兩件事之一。

無論你的鑰匙都沒有設置正確,或者說,Twitter的OAuth的回調回來是不正確的(因爲它沒有正確處理)的路線。

最簡單的檢查是你的Heroku的配置:

heroku config --app your_app_name 

這應該顯示CONSUMER_KEYCONSUMER_SECRET(我假設你使用的S3_KEYS3_SECRET以上是佔位符)

如果這個配置是正確的,並且它仍然不起作用,您需要深入瞭解處理返回到您的應用程序的請求。它似乎正在處理/ auth/twitter,但它在這一步中不正確。

+0

非常感謝!在CONSUMER_SECRET的末尾丟失了一個字母......我永遠不會想到檢查Heroku配置... – Leahcim 2012-01-03 00:41:52