Rails - Omniauth-facebook App_id 需要错误
Rails - Omniauth-facebook App_id required error
我有兴趣学习使用 rails 的 omniauth 身份验证,所以我查看了不同的指南,其中也包含 Railscast #360。
当我使用 developers.facebook.com 创建自己的应用程序时,它会为我创建一个 App_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
我试过用
provider :facebook, ENV['FACEBOOK_875829959136178'], ENV['FACEBOOK_<app_secret>']
还有。
当我调用 http://localhost:3000/auth/facebook 时,我收到一个错误,指出 "the parameter app_id is required".
我该如何传递这个错误,
看来你误解了什么是ENV。 ENV[xxx]
是一个 ruby 方法,它检索环境变量 xxx
的值。因此,您的代码片段中的 ENV['875829959136178']
会尝试检索环境变量 875829959136178
的值。很可能您没有将 app_id 设置为环境变量 875829959136178
,因此 ENV['875829959136178']
returns 为零。 provider
是一种采用 app_id 和 app_secret 的方法,但是由于您将 nil 作为 app_id,它声称甚至没有给出 app_id虽然这是必需的。
假设您的 app_id 是 875829959136178
,您的 app_secret 是 APP_SECRET
。让您的应用正常运行的最简单方法是将它们作为字符串提供。
provider :facebook, "875829959136178", "APP_SECRET"
不过,您应该注意,从安全角度来看,将您的应用程序 ID 和机密作为纯文本放在源代码中是不可取的。您应该通过阅读 this, or use gems like dotenv.
等文章来了解如何设置环境变量
我有兴趣学习使用 rails 的 omniauth 身份验证,所以我查看了不同的指南,其中也包含 Railscast #360。
当我使用 developers.facebook.com 创建自己的应用程序时,它会为我创建一个 App_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
我试过用
provider :facebook, ENV['FACEBOOK_875829959136178'], ENV['FACEBOOK_<app_secret>']
还有。
当我调用 http://localhost:3000/auth/facebook 时,我收到一个错误,指出 "the parameter app_id is required".
我该如何传递这个错误,
看来你误解了什么是ENV。 ENV[xxx]
是一个 ruby 方法,它检索环境变量 xxx
的值。因此,您的代码片段中的 ENV['875829959136178']
会尝试检索环境变量 875829959136178
的值。很可能您没有将 app_id 设置为环境变量 875829959136178
,因此 ENV['875829959136178']
returns 为零。 provider
是一种采用 app_id 和 app_secret 的方法,但是由于您将 nil 作为 app_id,它声称甚至没有给出 app_id虽然这是必需的。
假设您的 app_id 是 875829959136178
,您的 app_secret 是 APP_SECRET
。让您的应用正常运行的最简单方法是将它们作为字符串提供。
provider :facebook, "875829959136178", "APP_SECRET"
不过,您应该注意,从安全角度来看,将您的应用程序 ID 和机密作为纯文本放在源代码中是不可取的。您应该通过阅读 this, or use gems like dotenv.
等文章来了解如何设置环境变量