0

我在一个文件中为 facebook 密钥/秘密设置了本地环境变量以供使用omniauth-facebook,一切正常。

认为拥有 2 个 Facebook 应用程序可能是个好主意,一个用于开发,一个用于实时应用程序。不幸的是,当我换出 中的密钥时environment_variables.rb,每次验证尝试都会出现以下错误:

OmniAuth::Strategies::Facebook::Authorization Code Error at /auth/facebook/callback

这两个应用程序的所有设置都是相同的。我换回了实时应用程序凭据,它又可以工作了。

# only change to app is changing these values
ENV['FACEBOOK_KEY'] = '*******************'
ENV['FACEBOOK_SECRET'] = '***********************************'

我试过的:

  • 重新启动服务器(当然)
  • 删除开发应用程序的沙盒模式
  • 重置开发应用程序的密钥
  • 清除浏览器中的所有浏览数据
  • 手动删除 cookie

可能是什么问题呢?

4

1 回答 1

0

好吧,这很愚蠢,但是我忘了更改 javascript 中的 appId。现在我将 appId 作为元内容传入:

<!-- head partial -->
<meta name="facebook-app-id" content="<%= ENV['FACEBOOK_KEY'] %>">

然后用 jquery 抓取它

// facebook setup script
window.fbAsyncInit = function() {
  FB.init({
    appId  : $('meta[name="facebook-app-id"]').attr('content'),
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
};
于 2013-06-18T14:38:43.127 回答