2016-08-19 4 views
2

Je crée une application UWP. Je veux obtenir le profil d'utilisateur avec le compte de Microsoft. J'implémente la fonction de connexion en utilisant le gestionnaire de compte Web.Comment obtenir une image de profil utilisateur à l'aide du gestionnaire de compte Web avec UWP

J'ai essayé de mettre en œuvre pour voir ceci. : https://msdn.microsoft.com/en-us/windows/uwp/security/web-account-manager

et je peux obtenir le nom d'utilisateur, ID, ID de compte, etc (compte Microsoft). mais je ne peux pas obtenir l'image du profil de l'utilisateur. J'ai essayé d'utiliser la classe USER (en utilisant Windows.System.User), mais je ne sais pas comment connecter les deux éléments. Classe d'utilisateur: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/UserInfo Comment obtenir l'image de profil utilisateur dans l'application UWP?

Répondre

4

Je peux obtenir le nom d'utilisateur, l'identifiant, l'identifiant de compte, etc. (Compte Microsoft). mais je ne peux pas obtenir l'image du profil de l'utilisateur.

Après avoir obtenu le jeton d'accès, vous pouvez obtenir l'image de profil d'utilisateur par un autre api en direct:

private async void GetUserProfileImageAsync(String token) 
{ 
    var photoApi = new Uri(@"https://apis.live.net/v5.0/me/picture?access_token=" + token); 
    using (var client = new HttpClient()) 
    { 
     var photoResult = await client.GetAsync(photoApi); 
     using (var imageStream = await photoResult.Content.ReadAsStreamAsync()) 
     { 
      BitmapImage image = new BitmapImage(); 
      using (var randomStream = imageStream.AsRandomAccessStream()) 
      { 
       await image.SetSourceAsync(randomStream); 
       myProfile.Source = image; 
       myProfile.Width = image.PixelWidth; 
       myProfile.Height = image.PixelHeight; 
      } 

     } 
    } 
} 

Et XAML:

<Image Name="myProfile"/> 

Remarques: Live API a été remplacé par OneDrive API . Il est donc fortement recommandé d'utiliser l'API OneDrive au lieu de l'API Live pendant votre développement.