尝试使用fb app_id和app_secret配置环境变量

时间:2016-08-20 10:44:12

标签: ruby-on-rails ruby facebook omniauth-facebook

我正在关注rails cast#85 here以及stackoverflow here上标记的正确答案。

我正在尝试使用facebook" app_id"和" app_secret"在rails中设置为环境变量。

我的代码是:

初​​始化/ facebook.rb

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env]

配置/ facebook.yml

development:
app_id: abcdefg
app_secret: 123456
production:
app_id: abcdefg
app_secret: 123456

初​​始化/ omniauth.rb

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do

provider :facebook, FACEBOOK_CONFIG['abcdefg'], FACEBOOK_CONFIG['123456'], {:client_options =>   {:ssl => {:ca_file => Rails.root.join("cacert.pem").to_s}}}
end

当我在app_id和app_secret之前设置环境变量时,即当我尝试通过Facebook登录时FACEBOOK_CONFIG,它返回一个" app_id参数是必需的"信息。所以这种方式不起作用。我想知道是否有一些代码丢失或有人可以看到我做错了环境变量没有通过Facebook处理(他们之前没有任何ENV变量)。

1 个答案:

答案 0 :(得分:1)

rails console尝试

<强> 修改

require 'yaml'
yaml = YAML.load_file(File.expand_path("#{Rails.root}/config/facebook.yml"))
puts yaml

*编辑2 *

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env]

更改为:

FACEBOOK_CONFIG = YAML.load_file(File.expand_path("#{Rails.root}/config/facebook.yml"))[::Rails.env]