2016-06-19 12 views
2

Mit ASP.NET Core MVC RC2 Ich versuche, das Facebook Benutzerprofil Bild abrufen. Um dies zu tun habe ich die folgenden Zeilen in der Configure-Methode der StartklasseSo erhalten Sie facebook Benutzerprofil Bild in asp.net Kern MVC RC2

  app.UseFacebookAuthentication(new FacebookOptions() 
     { 
      AppId = Configuration["Authentication:Facebook:AppId"], 
      AppSecret = Configuration["Authentication:Facebook:AppSecret"], 
      Scope = { "user_birthday" }, 
      Fields = { "birthday", "picture" }, 
     }); 

Im AccountControllers ExternalLoginCallback Methode, die ich erwartet hatte, die Daten für das Bild in der ClaimsPrincipal Sammlung zu sehen, die über info.Principal zugegriffen werden können aber ich kann keine Ansprüche im Zusammenhang mit Bild sehen.

Ist dies der richtige Weg, um das Facebook-Benutzerprofilbild abzurufen oder fehlt mir etwas?

Antwort

2

Mit der Drittanbieter-Authentifizierung erhalten Sie nur Informationen darüber, wer der Benutzer ist (Benutzerauthentifizierung).

mit Facebook-Authentifizierung, nach erfolgreicher Anmeldung erhalten Sie einen Zugriffstoken zu Facebook-API und eine Sammlung von Benutzerdaten (Ansprüchen) nur vonUserInformationEndpoint (https://graph.facebook.com/v2.6/me).

Danach sollten Sie Facebook API-Methoden aufrufen, wenn Sie andere benutzerspezifische Informationen (wie Benutzerbild in Ihrem Fall - Facebook Graph API. User Picture) erhalten möchten.

Wenn Sie über Behauptungen, dass ASP.Core Implementierung von Facebook-Login ist gefüllt, interessiert ist, in CreateTicketAsync-Methode in FacebookHandler Klasse sucht - hier wird die Sammlung von Ansprüchen erstellt.

+0

Danke Festlegen, um zu verdeutlichen, dass die Claims Principal Collection nur Daten aus dem UserInformationEndpoint enthält. – Coni

+0

Kannst du mich auf ein Beispiel zeigen, das zeigt, wie man die facebook API-Methoden aufrufen – Coni

+0

überprüfen Sie diese http://stackoverflow.com/questions/11442442/get-user-profile-picture-by-id – Set