2017-04-02 119 views
0

我正在開發Web應用程序,我需要獲取有關Facebook用戶的完整信息。 OAUTH2登錄成功完成。但之後,當我撥打graph.facebook.api使用提供的訪問令牌時,我只能得到id,名稱和圖片。如何從ASP.NET MVC獲取完整的Facebook個人資料

問題是我怎樣才能從Facebook獲得完整的用戶資料?

在Startup.Auth.cs我有以下代碼:

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是這樣的:

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的響應。

相關問題