いくつかの Web サイトでは、現在の JS ライブラリと Facebook を統合しています。ログインは期待どおりに機能します。
JS ライブラリ (v6) で Facebook C# API を使用します。Facebook ユーザーが JS 呼び出しによって正常に認証されると、C# メソッドに ajax 呼び出しが送信されます。
FacebookClient facebookClient = new FacebookClient(accessToken);
var fbResult = facebookClient.Get("me");
if (fbResult.GetType().ToString() != "Facebook.JsonObject")
return null;
IDictionary<String, Object> result = (IDictionary<String, Object>)fbResult;
if (result.ContainsKey("email"))
email = (String)result["email"];
else
throw new Exception("E-mail key not found")
これで問題なく動作し、accessToken が渡され、c# ライブラリで使用されてユーザーの情報が取得されます。
しかし、約 100 人に 1 人のユーザーで例外がスローされます。何らかの理由で、電子メール キーが「api」に含まれていません。
developers.facebook.com で、「Auth Dialog」でアプリを「Authenticated Referrals」にセットアップしました: email と user_birthday。
しかし、これはどのように可能ですか?私は何かを見落としていますか?ユーザーが正しいアクセス許可なしでアプリにログインできるのはなぜですか?