0

ユーザーログインにFacebookJSSDKを使用しています。私はそれがどのように機能しているかについて混乱しています。このコードを使用している場合:

FB.init({
        appId     : '*********************************',
        channelURL: '*********************************',
        cookie    : true, 
        xfbml     : true,
        oauth     : true
    });
    FB.getLoginStatus(function(response){
        if(response.status == 'connected') {

    }
        else if(response.status == 'not_authorized') {
            /* Not Authorized */
            login();
        }
        else {
            /* Not Logged In*/
            /*login();*/
        }
    });
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    });
    FB.Event.subscribe('auth.logout', function(response) {
        window.location.reload();
    });
}; /* method window.fbAsyncInit ends here*/
/* Checks user login status on facebook*/
function login(){
    FB.login(function(response) {
        if (response.authResponse) {
            //connected

        }
        else {
            //cancelled
        }
    }, {scope: 'email'});
} /*function login ends here*/

ユーザーのメールIDを取得できません。

私がこれを使用している間、それは私にユーザーの電子メールIDを与えています。

FB.init({
        appId     : '********************',
        channelURL: '********************',
        cookie    : true, 
        xfbml     : true,
        oauth     : true
    });
    FB.getLoginStatus(function(response){
        if(response.status == 'connected') {
            /* Connected Successfully */
            FB.login(function(response) {
                // handle the response
                if (response.authResponse) {

        }
        else {
            //cancelled
        }
            }, {scope: 'email,user_likes'});              
}
        else if(response.status == 'not_authorized') {
            /* Not Authorized */
            login();
        }
        else {
            /* Not Logged In*/
            /*login();*/
        }
    });
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    });
    FB.Event.subscribe('auth.logout', function(response) {
        window.location.reload();
    });
}; /* method window.fbAsyncInit ends here*/
/* Checks user login status on facebook*/
function login(){
    FB.login(function(response) {
        if (response.authResponse) {
            //connected

        }
        else {
            //cancelled
        }
    }, {scope: 'email,user_likes'});
} /*function login ends here*/

メールIDを取得しています。

最初のコードのどこが間違っているのか教えてください。

編集:提案に従って、ログイン関数に{scope:'email、user_likes'}を追加しましたが、まだ機能していません。

ありがとう

4

2 に答える 2

1

ケース1:ユーザーのメールIDを取得できません。

唯一の理由は、これらの変更を行う前にユーザーがすでに承認されていることである可能性があります。新しいユーザーで、またはアプリ設定からアプリを削除して、同じコードをもう一度使用してみてください。

于 2013-01-17T11:58:48.963 に答える
-1

秘訣は{scope:'email、user_likes'}を追加することです...最初のコードでは、2番目のコードにあるこの部分が欠落しています。それはあなたがユーザーの電子メールIDだけでなく彼の好きなものも取得することを可能にします...

于 2013-01-17T11:22:30.337 に答える