1

誕生日の許可について、Facebook接続に少し問題があります。

私が持っているhtmlの本文に:

<div class="fb-login-button" scope="user_birthday, user_about_me" perms="email,user_birthday"> Login with Facebook </div>

jSのヘッダーには、次のものがあります。

<script>
    // Additional JS functions here

    window.fbAsyncInit = function() {
        FB.init({
            appId      : 'XXXXXXX', // App ID
            channelUrl : '//connect.facebook.net/en_US/all.js', // Channel File
            status     : true, // check login status
            cookie     : true, // enable cookies to allow the server to access the session
            xfbml      : true  // parse XFBML
        });

        // Additional init code here
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                // connected
                FB.api('/me??accessToken='+response.authResponse.accessToken, function(user) {
                    var monthfb = user.birthday.substr(0,2);
                    var dayfb = user.birthday.substr(3,2);
                    var yearfb = user.birthday.substr(6,4);

                    $("input[id=year]").val(monthfb);
                    $("input[id=month]").val(dayfb);
                    $("input[id=day]").val(yearfb);

                    $("a.age_gate_submit").click();
                    alert('1');

                    console.log(user);
                    //$.cookie('age_gate', 'gohome',{ expires: 99 });
                    window.location = "home.html";
                });
            }
        });
    };

    function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                // connected
                FB.api('/me??accessToken='+response.authResponse.accessToken, function(user) {
                    var monthfb = user.birthday.substr(0,2);
                    var dayfb = user.birthday.substr(3,2);
                    var yearfb = user.birthday.substr(6,4);



                    $("a.age_gate_submit").click();
                    alert('2');

                    //console.log(response.birthday);
                    console.log(user);
                    //$.cookie('age_gate', 'gohome',{ expires: 99 });
                    window.location = "home.html";
                });
        }
        });
    }

    // Load the SDK Asynchronously
    (function(d){
        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.js#xfbml=1&appId=XXXXXXX";
        ref.parentNode.insertBefore(js, ref);
    }(document));


</script>

ボタンをクリックすると、適切なウィンドウが表示され、FB アプリを受け入れますが、jS が呼び出している関数がないため、window.locations が機能しません。しかし、リフレッシュしたら大丈夫です。誕生日などを取ることができます...だから問題は、アプリを受け入れた瞬間にあります。リダイレクトはどうすればいいですか???

4

1 に答える 1

1

申し訳ありませんが、あなたの答えは私を助けませんでした。しかし、私は解決策を見つけました:

FB.Event.subscribe() を実装する必要がありました。この関数は、ユーザーがログインを受け入れると機能します。

于 2013-02-21T15:05:19.483 に答える