从Windows Live获取个人资料图片

9

Windows Live API

我可以通过Windows Live API正确地获取用户信息、联系人和好友。

但是当我按照以下说明请求用户个人资料图片时:

注意:要将GET调用重定向到用户图片的URL,您可以调用/me/picture或/USER_ID/picture。

https://apis.live.net/v5.0/me/picture?access_token=MY_ACCESS_TOKEN

它返回了null,实际上我已经为Windows Live设置了个人资料图片。很奇怪,我可以获取除用户图片以外的所有信息,但是当我使用Windows交互式SDK获取用户图片时,它会响应我正确的图片URL。问题出在哪里呢?

我之前也遇到了同样的问题,但这个方法对我有效。string.Format("https://apis.live.net/v5.0/me/picture?access_token={0}", externalIdentity.AccessToken); 也许你的访问令牌有问题? - Bobby Cannon
@BobbyCannon,除了用户图片,我可以获取所有信息,因此我的访问令牌没有问题。 - koogua
2个回答

8

以下是我的工作内容。我现场编辑了这段代码,希望语法是正确的。

var uri = "https://apis.live.net/v5.0/me?access_token=" + accessToken;
var profile = JObject.Parse(new WebClient().DownloadString(uri));
var pictureUrl = string.Format("https://apis.live.net/v5.0/{0}/picture", profile["id"]);

谢谢!那个URL今天仍然有效,我将用它来为我的oAuth Live用户提供服务。 - Jakub
1
这个可行。但是为什么它没有被记录在任何地方呢?另外,您无法将图片作为其他对象的一部分获取,必须单独请求。 - GetFree
1
这个不再起作用了。返回一个错误消息:“此 API 不再受支持。请访问 https://aka.ms/livesdkmigration 了解有关将应用程序迁移到 Microsoft Graph 的信息。” - Nathan Osman

2
也许有点晚了,但对其他人仍然有用。如果您拥有Live用户id,则不需要访问令牌。请尝试以下操作:
https://apis.live.net/v5.0/USER_ID/picture?type=large

当然,您必须将 USER_ID 替换为您尝试获取图片的ID ... 然后您可以添加首选大小: small (以获得96×96像素的图片), medium (180×180)或 large (360×360)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接