2012-04-14 11 views
0

私はPHPで書かれたFacebookアプリケーションを持っています。ユーザーの「電子メール」許可を求められました。私は90%のユーザーの電子メールアドレスを取得したことに気付きましたが、一部ではありません。Facebook SDK:電子メールフィールド返信時null(「電子メール」アクセス許可セットあり)

私は電子メールの許可により、Facebook Appにユーザーのプロフィールに記載されているプラ​​イマリ電子メールアドレスを取得できることが分かりましたが、SDKが時々nullを返すのはなぜですか?

答えて

5

「電子メール」は、アプリケーションを許可するときにユーザーが要求する必要のない拡張アクセス許可です。アプリを続行する前にユーザーに「電子メール」の許可を与える必要がある場合は、認証後にユーザーがワークフローを続けることを許可する前に、そのアクセス許可が存在することを確認する必要があります。

あなたが使用する必要がグラフAPIエンドポイントはここ"/me/permissions"

である私はちょうどそれを行うために使用する方法である:

permissionsは、要求されたアクセス権を表す文字列の配列です。

hasPermissions(["email"], function(hasPerms){ 
    alert(hasPerms); 
}); 

function hasPermissions(permissions, callback){ 
    console.log("perms requested"); 
    console.log(permissions); 
    FB.api("/me/permissions", function(response){ 
     var hasPerms = true; 
     console.log("perms obtaind"); 
     console.log(response); 
     for(var i in permissions){ 
      console.log([permissions[i]] + " - " + response["data"][0][permissions[i]]) 
      hasPerms = hasPerms && response["data"][0][permissions[i]] == 1; 
     } 
     if(typeof callback == "function"){ 
      callback(hasPerms);  
     }  
    }); 
} 
0

私は電子メールが拡張アクセス許可セットの一部だとは思わない。私は認証ダイアログでメールの許可を求めましたが、認証のダイアログには表示されません。

+1

が間違っています。 Facebook SDKによれば、電子メールは拡張アクセス許可セットの一部です。 – Raptor

+0

あなたはどちらを参考にしてもらえますか? –

関連する問題