クライアントサイトの承認を試み、キャンバス内で実行しようとしています。自分のWebサイトに直接アクセスするとhttp://mysite.com/すべてが機能します。キャンバスhttps://apps.facebook.com/myappを介して実行しようとすると、実行されますが、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がtrueになったら、ログインして続行する準備ができていることがわかります。ただし、キャンバスページから直接そこに到達することはありません。
私はサンドボックスモードで、現在httpsではなくhttp経由で実行しています。
何か案は?