2016-09-30 5 views
0

FacebookのOAuthを使用しているときにユーザーの場所(または地域)を取得しようとしています(私はGoogleで試したことはありませんがそれも好きです)FacebookのOAuthプロバイダを使用しているときに場所のクレームを取得する方法

私はいつも同じ要求の種類を取得しています

_signInManager.GetExternalLoginInfoAsync() 

を行う際

app.UseFacebookAuthentication(new FacebookOptions 
      { 
       AutomaticAuthenticate = true, 
       AutomaticChallenge = true, 
       ClientId = "", 
       ClientSecret = "", 
       Scope = {"email", 
         "user_friends", 
         "user_location" } 
      }); 

問題があるので、私:

は、私はすでに、このように私のスタートアップファイルで私の範囲を設定していますthを追加したいeローカリティ、またはその他のクレームタイプ(例えば、電子メールの代わりにユーザー名など)。

私は:

var user = new ApplicationUser 
{ 
    ProviderKey = info.ProviderKey, 
    Email = info.Principal.FindFirstValue(ClaimTypes.Email), 
    Name = info.Principal.FindFirstValue(ClaimTypes.GivenName), 
    Surname = info.Principal.FindFirstValue(ClaimTypes.Surname), 
    AuthenticationType = info.LoginProvider, 
    NormalizedUserName = info.Principal.FindFirstValue(ClaimTypes.Email), 
    UserName = info.Principal.FindFirstValue(ClaimTypes.Email), 
    Location = info.Principal.FindFirstValue(ClaimTypes.Locality), // I'm getting null here 
    Created = DateTime.UtcNow 
}; 

私は任意の助けが理解されるであろう、私が収集したいが、どこから始めれば、私はわからないんだけど、それらの余分の請求のための設定を追加する必要があると思います。

答えて

1

あなたはlocationフィールドを追加する必要があります。

app.UseFacebookAuthentication(new FacebookOptions 
{ 
     AutomaticAuthenticate = true, 
     AutomaticChallenge = true, 
     ClientId = "", 
     ClientSecret = "", 
     Scope = {"email", "user_friends", "user_location" }, 
     Fields = {"location"} 
}); 
+0

おかげで、私が確認し、 –

+0

がよく、それは魅力のように働い知ってもらおう、どのようにフィールド名が場所を知っているとUSER_LOCATIONないのですか? –

+1

https://developers.facebook.com/docs/facebook-login/permissions#reference-user_location –

関連する問題