1

私はこの問題を抱えています。

Facebookのタブページにこのコードがあり、ご覧のとおり、ユーザーがアクセスするときにいくつかの権限が必要です。問題は、「閉じる」ボタンをクリックすると、FB.login のコールバックが開始されず、FB がこれをコンソールにスローすることです。

  • Chrome: "Uncaught TypeError: 未定義のプロパティ 'e2e' を読み取れません".
  • Firefox: 「ea.result は定義されていません」

アクション

ユーザーが [閉じる] をクリックしても、FB.login のコールバックが開始されない

コード

...
<script src="//connect.facebook.net/en_US/all.js"></script>
</head>
<body>

<div id="fb-root"></div>
<script>
var api = new Object();
api.login = false;
api.width = 810;
api.height = 970;
function login() {
    FB.login(function(response) {
        if (response.authResponse) {
            // here it works when user click 'Go to app' button
            alert('Go to app');
        } else {
            // here is the problem, because this else doesn't start- 
            // -when user click 'Close' button
            alert('CLOSE'); 
        }
    }, {scope: 'email,user_birthday'}); 
}
function loginStatus(response) {
    if (response && response.status === 'connected') {
        // already auth
        api.login = true;
    } else {
        login();
    }
}
function sizeChangeCallback() {FB.Canvas.setSize({ width: api.width, height: api.height });}
window.fbAsyncInit = function() {
    FB.init({
        appId : '564323490269057',
        status : true,
        cookie : true, 
        xfbml : true
    });
    FB.Canvas.setSize({ width: api.width, height: api.height });
    FB.getLoginStatus(loginStatus);
}
(function(d, debug){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));
</script>

</body>
</html>
4

0 に答える 0