Ruby on rails Rails-Omniauth facebook应用程序\u id必需错误
我对学习使用rails的omniauth认证很感兴趣,因此我查看了不同的指南,其中也包含Railscast#360 当我使用developers.facebook.com创建自己的应用程序时,它会为我创建一个应用程序id和密码。我将应用程序设置为在线,并创建了一个基本rails应用程序,它只使用Ryan Bates指南中的步骤 这是我的omniauth.rb文件,它生成了我收到的错误Ruby on rails Rails-Omniauth facebook应用程序\u id必需错误,ruby-on-rails,authentication,omniauth,facebook-authentication,omniauth-facebook,Ruby On Rails,Authentication,Omniauth,Facebook Authentication,Omniauth Facebook,我对学习使用rails的omniauth认证很感兴趣,因此我查看了不同的指南,其中也包含Railscast#360 当我使用developers.facebook.com创建自己的应用程序时,它会为我创建一个应用程序id和密码。我将应用程序设置为在线,并创建了一个基本rails应用程序,它只使用Ryan Bates指南中的步骤 这是我的omniauth.rb文件,它生成了我收到的错误 OmniAuth.config.logger = Rails.logger Rails.applicatio
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['875829959136178'], ENV['<app_secret>']
end
OmniAuth.config.logger=Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
提供者:facebook,ENV['875829959136178',ENV[',我收到一个错误,表明“参数app_id是必需的”
如何传递此错误,您似乎误解了ENV是什么。ENV[xxx]
是一个ruby方法,用于检索环境变量xxx
的值。因此ENV['875829959136178']
在代码段中尝试检索环境变量875829959136178
的值。很可能您没有将应用程序id设置为环境变量875829959136178
,因此ENV['875829959136178']
返回nil。提供程序
是一种采用app\u id和app\u secret的方法,但由于您将nil作为app\u id,因此它声称即使需要app\u id,也没有给出
假设你的app_id是875829959136178
,你的app_secret是app_secret
。让你的app工作的最简单方法是将它们作为字符串
provider :facebook, "875829959136178", "APP_SECRET"
不过,您应该注意,从安全角度来看,将应用程序id和密码作为纯文本放在源代码中是不可取的。您应该通过阅读或使用gems之类的文章来学习如何设置环境变量。一个令人惊讶的解释:)非常感谢。将学习环境变量,对吗
provider :facebook, "875829959136178", "APP_SECRET"