Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails/Heroku:设置代码以在运行时读取变量_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails Rails/Heroku:设置代码以在运行时读取变量

Ruby on rails Rails/Heroku:设置代码以在运行时读取变量,ruby-on-rails,heroku,Ruby On Rails,Heroku,我创建了一个使用Twitter Ruby gem的网站。在本地主机上,我可以让Twitter gem正常工作,但当我将其部署到Heroku时,我无法通过Twitter登录 Heroku提供了关于添加消费者密钥和消费者秘密的说明(使用AmazonS3变量) $ cd myapp $ heroku config:add S3_KEY=some_key_here S3_SECRET=some_secret_here 我做到了 然后,当我去测试登录时,我会在url中得到它。此url与(在本地主机上)我

我创建了一个使用Twitter Ruby gem的网站。在本地主机上,我可以让Twitter gem正常工作,但当我将其部署到Heroku时,我无法通过Twitter登录

Heroku提供了关于添加消费者密钥和消费者秘密的说明(使用AmazonS3变量)

$ cd myapp
$ heroku config:add S3_KEY=some_key_here S3_SECRET=some_secret_here
我做到了

然后,当我去测试登录时,我会在url中得到它。此url与(在本地主机上)我忘记添加消费者密钥等时相同,因此我认为我没有在Heroku上正确设置消费者密钥和消费者密钥。。。

Heroku提供了有关在config/initalizers中设置文件以在运行时读取变量的更多详细信息,但我认为我分叉并随后改编的Github项目已经设置了这个文件,所以我不确定发生了什么

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

当我尝试通过Twitter登录时,Heroku日志中出现错误消息。注意,我可以通过本地主机登录

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]: 

这可能是两件事之一

您的密钥设置不正确,或者TwitterOAuth回调返回的路径不正确(因为它处理不正确)

最容易检查的是Heroku配置:

heroku config --app your_app_name
这应该显示
CONSUMER\u KEY
CONSUMER\u SECRET
(我假设您使用上面的
S3\u KEY
S3\u SECRET
是占位符)


如果这个配置是正确的,但仍然不起作用,那么您需要深入研究返回到应用程序的请求的处理。它似乎在处理/auth/twitter,但在这一步中它不正确。

你可能想更好地隐藏你的密钥和秘密,这很容易阅读。当你得到错误页面时,Heroku日志中的错误消息是什么?@BrandonTilley我用错误消息更新了OP。看看这是否有帮助(最值得注意的是推特设置)非常感谢!消费者秘密的结尾少了一封信…我从没想过要检查Heroku配置。。。