Facebook graph api Meteor.loginWithFacebook正在失败
在尝试实现Meteor.loginWithFacebook()方法时,我一直收到此错误消息。登录以前在我的应用程序中工作,现在它不再工作了,我不知道为什么: 我将其设置为,当单击facebook登录按钮时,会调用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
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,它基本上会加载应用程序两次