Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/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
getLoginStatus未通过从FB canvas调用触发_Canvas_Facebook Javascript Sdk_Facebook Canvas - Fatal编程技术网

getLoginStatus未通过从FB canvas调用触发

getLoginStatus未通过从FB canvas调用触发,canvas,facebook-javascript-sdk,facebook-canvas,Canvas,Facebook Javascript Sdk,Facebook Canvas,正在尝试客户端站点授权,并尝试在画布中运行。如果我直接访问我的网站,一切正常。如果我尝试通过画布运行,它会运行,但getLoginStatus根本不会启动 var curLoc = window.location; FB.init({ appId: 'xxxxxxxxxxxxxxx', // App ID channelUrl: curLoc.protocol + "//" + curLoc.hostname + ":" + curLoc.port + "/channel.ht

正在尝试客户端站点授权,并尝试在画布中运行。如果我直接访问我的网站,一切正常。如果我尝试通过画布运行,它会运行,但getLoginStatus根本不会启动

var curLoc = window.location;


 FB.init({
   appId: 'xxxxxxxxxxxxxxx', // App ID
   channelUrl: curLoc.protocol + "//" + curLoc.hostname + ":" + curLoc.port + "/channel.html",
   cookie: true, // enable cookies to allow the server to access the session
   status: true,
   oauth: true,
   xfbml: true
 });

 FB.getLoginStatus(function (response) {
   if (response.status === 'connected') {
     smloader.gameVariables.smUserid = response.authResponse.userID;
     facebook.isLoaded = true;
   } else {
     facebook.authUser();
   }

 }, true);
如果需要,请登录

function facebook.authUser() {
 FB.login(function (response) {
   if (response.authResponse) {
     smloader.gameVariables.smUserid = response.authResponse.userID;
     facebook.isLoaded = true;
   }
   else {
     facebook.authUser();
   }
 }, { scope: 'email,publish_actions' });
}

一旦Facebook.isLoaded是真的,我知道我们已经登录并准备继续。但它从未直接从画布页面到达那里

我处于沙盒模式,目前通过http而不是https运行,因为我没有


有什么想法吗?

我一直面临同样的问题,我就是这样解决的:

即使getLoginStatus()在http网站中工作,getLoginStatus()也不会在fb画布中启动,除非您提供有效的安全画布URL()! 这意味着您需要在https服务器(端口443)上运行应用程序
如果不想购买证书,可以创建并自签名证书(请参见此处:)


我希望这会有所帮助

您解决过这个问题吗?我现在也有同样的问题,你在控制台中有错误吗?应在
window.fbasyninit=function(){FB.init(…);}