如何使用带有 UWP 的 Web 帐户管理器获取用户个人资料图片
How to get User profile picture using Web account manager with UWP
我创建了一个 UWP 应用程序。我想使用 Microsoft 帐户获取用户配置文件。我使用网络账户管理实现登录功能。
我已经尝试实施以查看此信息。 : https://msdn.microsoft.com/en-us/windows/uwp/security/web-account-manager
我可以获得用户名、ID、帐户 ID 等(Microsoft 帐户)。
但我无法获取用户个人资料图片。我尝试使用 USER Class(using Windows.System.User),但我不知道如何连接这两个项目。
用户 class:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/UserInfo
如何在 UWP 应用程序中获取用户头像?
I can get user name, id, account id, etc(Microsoft Account). but I can't get user profile image.
获取access token后,可以通过另一个live获取用户头像api:
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;
}
}
}
}
和XAML:
<Image Name="myProfile"/>
注意:Live API 已被 OneDrive API 取代。因此强烈建议您在开发过程中使用 OneDrive API 而不是 Live API。
我创建了一个 UWP 应用程序。我想使用 Microsoft 帐户获取用户配置文件。我使用网络账户管理实现登录功能。
我已经尝试实施以查看此信息。 : https://msdn.microsoft.com/en-us/windows/uwp/security/web-account-manager
我可以获得用户名、ID、帐户 ID 等(Microsoft 帐户)。 但我无法获取用户个人资料图片。我尝试使用 USER Class(using Windows.System.User),但我不知道如何连接这两个项目。 用户 class:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/UserInfo 如何在 UWP 应用程序中获取用户头像?
I can get user name, id, account id, etc(Microsoft Account). but I can't get user profile image.
获取access token后,可以通过另一个live获取用户头像api:
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;
}
}
}
}
和XAML:
<Image Name="myProfile"/>
注意:Live API 已被 OneDrive API 取代。因此强烈建议您在开发过程中使用 OneDrive API 而不是 Live API。