ruby-on-rails – Rails:Omniauth – “参数app_id是必需的”

我正在关注这个railscast教程,在我的rails项目上为facebook身份验证设置omniauth: http://railscasts.com/episodes/360-facebook-authentication?autoplay=true.我进入了4分钟,到目前为止我所做的就是捆绑了gem omniauth-facebook添加了,

omn​​iauth.rb

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook,ENV['my id here...'],ENV['my secret code here...']

end

然后当我去http:// localhost:3000 / auth / facebook时,我收到一条错误消息,说参数app_id是必需的.

解决方法

哦,现在我明白了:你需要定义环境变量来存储你的facebook_app_id和facebook_secret.您可以像这样将它们添加到您的环境中(假设类似unix的系统):

将它添加到〜/ .bashrc文件(或等效文件)的底部

export FACEBOOK_APP_ID='your_id_here'
export FACEBOOK_SECRET='your_secret_here'

然后打开一个新终端,确保它们在环境中加载.

最后,在您的omniauth.rb初始值设定项中,您可以完全键入:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook,ENV['FACEBOOK_APP_ID'],ENV['FACEBOOK_SECRET']
end

例如,阅读有关主题here的更多信息.

您还可以使用dotenv gem来处理环境变量.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...