Facebook Graph API を使用して、Facebook 経由でログインしたユーザーに関する情報を取得しようとしています。
最初は 1 つの関数しか使用していませんでしたが、エラーは発生しませんでした。しかし、その後、Facebook API を使用する別の関数を追加しました。その瞬間から、どの機能も機能しません。新しい機能を削除すると、古い機能が再び機能します...
コードは、上で説明したものよりもはるかに理解しやすいと思います。
    function fb_login(){
        FB.login(function(response) {
            if (response.authResponse) {
                access_token = response.authResponse.accessToken; //get access token
                user_id = response.authResponse.userID; //get FB UID
                FB.api('/me', function(response) {
                    user_email = response.email; //get user email
                            $.ajax({
                              type: "POST",
                              url: "http://*******/ajax.php",
                              data: { action: "login", id: user_id, email: user_email, first_name: response.first_name, last_name: response.last_name }
                            }).done(function( msg ) {
                              alert( "Data Saved: " + msg );
                            });            
                });
        } else {
            //user hit cancel button
            console.log('User cancelled login or did not fully authorize.');
        }
    }, {
        scope: 'publish_actions,email,read_stream,publish_stream'
    });
}
上記の関数は、以下の関数が存在しない限り機能します。
function update_autopost(form)
{
    FB.api('/me', function(response) {
                    var autopost_value = form.autopost.checked;
                    if(autopost_value == false)
                    {
                        autopost_value = "off";
                    }
                    else{
                        autopost_value = "on";
                    }
                    $.ajax({
                      type: "POST",
                      url: "http://*********/ajax.php",
                      data: { action: "update", id: response.authResponse.userID, autopost: autopost_value }
                    }).done(function( msg ) {
                      alert( "Data Saved: " + msg );
                    });            
        });
}
さらに詳しく説明すると、2 番目の関数を追加すると、次の 2 つのことが起こります。
- 最初の機能は動作を停止します。
 - 2 番目の関数は Facebook Graph API から情報を取得できません (たとえば、 response.authResponse.userIDは機能しません)。