PHPで書かれたFacebookアプリがあります。ユーザーの「メール」許可を求められました。ユーザーの電子メール アドレスの90%を取得したことに気付きましたが、一部は取得できませんでした。
電子メールのアクセス許可により、Facebook アプリがユーザーのプロファイルに記載されているプライマリ電子メール アドレスを取得できることは知っていますが、SDK が時々 を返すのはなぜnull
ですか?
PHPで書かれたFacebookアプリがあります。ユーザーの「メール」許可を求められました。ユーザーの電子メール アドレスの90%を取得したことに気付きましたが、一部は取得できませんでした。
電子メールのアクセス許可により、Facebook アプリがユーザーのプロファイルに記載されているプライマリ電子メール アドレスを取得できることは知っていますが、SDK が時々 を返すのはなぜnull
ですか?
「電子メール」は、ユーザーがアプリケーションを許可するときに与える必要のない拡張アクセス許可です。アプリを続行する前にユーザーに「メール」権限を付与する必要がある場合は、認証後にユーザーがワークフローを続行できるようにする前に、その権限が存在することを確認する必要があります。
使用する必要のあるグラフ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);
}
});
}
メールが拡張アクセス許可セットの一部だとは思いません。認証ダイアログでメールの許可を求めましたが、認証ダイアログに表示されません。