3

Facebook アプリケーションがあり、JavaScript JDK を使用しています。

メールの許可をよくリクエストしています:

新しいユーザーの場合、認証ウィンドウにリダイレクトします。

top.location = 'https://graph.facebook.com/oauth/authorize?client_id=' + APP_ID + '&scope=email&redirect_uri=XXX';

そして、それを取得しようとしています:

FB.getLoginStatus(function (response) {
    if (response.authResponse) {
        FB.api('/me', function (response) {
            console.log(response.email);
        }
    }
 }

既存のユーザーの場合(メールが未定義の場合)、メールの許可を再リクエストして再取得しようとしました:

FB.login(function(response){
    if(response.status == 'connected'){
            FB.api('/me?fields=email,id',  function(response) {
                  console.log(response.email);
              });
    }
},{scope: 'email'});

問題は、一部のユーザーでは /me の応答で電子メールを受信し、他のユーザーでは未定義であることです。何が間違っている可能性がありますか?

ありがとう!

4

1 に答える 1

5

これは問題の解決策ではありませんが、最近、問題を回避して機能させるようにしました。

すべての Facebook ユーザーには、Facebook によって ID : のメール アドレスが割り当てられているため [username]@facebook.com 、リクエストでユーザーのメール アドレスが返されない場合は、このメールを使用することにしました。

すなわち

$email = isset($fb_user["email"])?$fb_user["email"]:$fb_user["username"] . "@facebook.com";

繰り返しますが、これは解決策ではなく、単なる回避策です。

お役に立てれば。

于 2013-08-29T07:13:59.603 に答える