Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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-Omniauth facebook应用程序\u id必需错误_Ruby On Rails_Authentication_Omniauth_Facebook Authentication_Omniauth Facebook - Fatal编程技术网

Ruby on rails Rails-Omniauth facebook应用程序\u id必需错误

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

我对学习使用rails的omniauth认证很感兴趣,因此我查看了不同的指南,其中也包含Railscast#360

当我使用developers.facebook.com创建自己的应用程序时,它会为我创建一个应用程序id和密码。我将应用程序设置为在线,并创建了一个基本rails应用程序,它只使用Ryan Bates指南中的步骤

这是我的omniauth.rb文件,它生成了我收到的错误

 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"