私はFacebook用の最新のLoginButtonを使用しており、次のように読み取り権限を設定しています:
mLoginFacebookButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday"));
ドキュメントはこれについて少しぼんやりしています:
アプリは、リクエストしたアクセス許可の 1 つをアプリに付与することを誰かが拒否した場合に対処する必要があります。アプリが動作するために拒否されたアクセス許可のいずれかが必要な場合は、上記の例のように LoginManager を使用して再度要求できます。
そのため、ログイン時にユーザーの誕生日 (アプリの機能に不可欠) を尋ねたところ、拒否された場合、なぜそれが必要なのかを説明するダイアログが表示されます。では、具体的に何をすればよいのでしょうか。彼らがダイアログを閉じるときに、私は現在これを呼び出しています:
LoginManager.getInstance().logInWithReadPermissions(LoginFragment.this,
Arrays.asList("public_profile", "email", "user_birthday"));
もう一度誕生日を尋ねるので、それで問題ありません。しかし、このドキュメントは、動作にフラグが立てられることを示しているようです:
誰かがアプリのパーミッションを拒否した場合、ログイン ダイアログでは、リクエストを渡さない限り、アプリがパーミッションを再リクエストすることはできません
auth_type=rerequest
。ユーザーがアクセス許可を拒否した後、アプリがユーザーを繰り返しアクセス許可ダイアログに誘導すると、デベロッパー アラートを受け取ることがあります。これらのアラートの受信を停止するには、次のガイドラインに従ってください。
LoginManager.getInstance().logInWithReadPermissions() への呼び出しauth_type=rerequest
は舞台裏で行われますか? この種の動作について開発者からアラートを受け取ることはありますか?