Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Facebook graph api Meteor.loginWithFacebook正在失败_Facebook Graph Api_Meteor_Facebook Javascript Sdk - Fatal编程技术网

Facebook graph api Meteor.loginWithFacebook正在失败

Facebook graph api Meteor.loginWithFacebook正在失败,facebook-graph-api,meteor,facebook-javascript-sdk,Facebook Graph Api,Meteor,Facebook Javascript Sdk,在尝试实现Meteor.loginWithFacebook()方法时,我一直收到此错误消息。登录以前在我的应用程序中工作,现在它不再工作了,我不知道为什么: 我将其设置为,当单击facebook登录按钮时,会调用Meteor.loginWithFacebook()方法,如下所示(客户端): 服务器端: ServiceConfiguration.configurations.upsert( { service: "facebook" }, { $set:{ // De

在尝试实现Meteor.loginWithFacebook()方法时,我一直收到此错误消息。登录以前在我的应用程序中工作,现在它不再工作了,我不知道为什么:

我将其设置为,当单击facebook登录按钮时,会调用Meteor.loginWithFacebook()方法,如下所示(客户端):

服务器端:

ServiceConfiguration.configurations.upsert(
  { service: "facebook" },
  {
    $set:{
      // Development
      appId: "App-ID-String",
      secret: "App-Secret-String"
    }
  }
);
奇怪的是,这在开发中工作时效果很好,但当我将代码推送到生产服务器时,就会出现上面的错误。这段代码也工作了几个月,然后在生产中停止工作。我已经清除了这两个数据库,从零开始,我仍然在生产中得到错误,但在开发中没有


在您提到它之前,我有单独的代码块来处理基于开发和生产的不同appId和secret,但代码本质上是相同的,并且适用于这两种环境。

结果表明,Facebook SDK特别关注您的URL前缀/主机(如果URL前面有或没有“www”)并将URL视为单独的站点。当去我的网站登录时,我的网站的非www前缀URL版本无法登录到Facebook,但“www”版本可以

如果使用以下代码访问非www URL,我可以通过强制我的应用程序重新加载带有“www”前缀的URL来修复此问题。我尝试使用GoDaddy DNS接口进行转发,但没有成功

Meteor.startup(function () {
  if (location.host.indexOf('www') === -1) {
    location = 'http://www.example.com';
  }
});

这立即解决了我的主要问题,尽管这似乎不是处理这个问题的最理想方式,因为如果用户访问非www URL,它基本上会加载应用程序两次。

结果表明,Facebook SDK特别关注您的URL前缀/主机(如果URL前面有或没有“www”)并将URL视为单独的站点。当去我的网站登录时,我的网站的非www前缀URL版本无法登录到Facebook,但“www”版本可以

如果使用以下代码访问非www URL,我可以通过强制我的应用程序重新加载带有“www”前缀的URL来修复此问题。我尝试使用GoDaddy DNS接口进行转发,但没有成功

Meteor.startup(function () {
  if (location.host.indexOf('www') === -1) {
    location = 'http://www.example.com';
  }
});
这立即解决了我的主要问题,尽管这似乎不是处理这个问题的最理想方式,因为如果用户访问非www URL,它基本上会加载应用程序两次