2017-04-02 1 views
0

私はFacebookのユーザーに関する完全な情報を得る必要があるWebアプリケーションを開発しています。 OAUTH2ログインは正常に終了しました。しかしその後、graph.facebook.apiにアクセストークンを使用して呼び出すと、ID、名前、画像のみが取得されます。ASP.NET MVCからフル・フェイスブック・プロファイルを取得するには

質問はどうすればfacebookから完全なユーザープロフィールを取得できますか?

var facebookAuthOptions = new FacebookAuthenticationOptions() 
{ 
    AppId = "APP_ID_HERE", 
    AppSecret = "APP_SECRET_HERE", 
    Provider = new FacebookAuthenticationProvider() 
    { 
     OnAuthenticated = (context) => 
     { 
      context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:accesstoken" 
             , context.AccessToken 
             , ClaimValueTypes.String 
             , "Facebook")); 
      context.Identity.AddClaim(new Claim("urn:facebook:email" 
             , context.AccessToken 
             , ClaimValueTypes.Email 
             , "Facebook")); 
      context.Identity.AddClaim(new Claim("urn:facebook:about" 
             , context.AccessToken 
             , ClaimValueTypes.String 
             , "Facebook")); 
      return Task.FromResult(0); 
     } 
    } 
}; 

app.UseFacebookAuthentication(facebookAuthOptions); 

そして、私のコントローラで私はこのようなFacebookのAPI呼び出しています:私は次のコードしているStartup.Auth.csで

var apiRequestUri = new Uri("https://graph.facebook.com/v2.8/me?fields=email,name,about,picture&access_token=" + accessToken); 

var webClient = new System.Net.WebClient(); 
var json = webClient.DownloadString(apiRequestUri); 
var profile = JsonConvert.DeserializeObject<FacebookProfile>(json); 

しかし、私が得ることはIDのみであるが、名前と画像。 グラフapiコンソールで同様のクエリを実行しようとすると、必要な情報をすべて取得できます。 何か提案を歓迎します! ご協力いただきありがとうございます!

答えて

0

私は、必要なフィールドごとにfacebookAuthOptionsにクレームを追加することでこれを解決しました。ユーザーがリクエストされた情報を承認した後、承認ステップで提供されたトークンを使用してFacebook APIからの応答を正常に取得できます。

関連する問題