【问题标题】:Can't get user photo with graph.microsoft.com无法使用 graph.microsoft.com 获取用户照片
【发布时间】:2020-04-17 15:20:46
【问题描述】:

我是 OpenId Connect 身份验证和 graph.microsoft.com 的新手,在获取用户照片时遇到问题。

我有一个使用 ASP.NET Web 窗体构建的网站,并且正在将 Microsoft 身份验证替换为 OpenId,因为它已被弃用。

所以,我在 Azure 门户中添加了一个应用程序,并且身份验证工作正常。我已经设法从身份验证中获取访问令牌,但正在努力使用 graph.microsoft.com 获取用户的照片。

Azure 上的应用拥有 User.Read 权限(Delegated 权限)。

我已将标头设置为包含 Authorization 和 Bearer [access_token] 作为键和值,GET 请求为 https://graph.microsoft.com/v1.0/users/suencien@hotmail.com/photo/$value

suencien@hotmail.com 是经过身份验证的电子邮件地址。

我得到的回应是:

{
  "error": {
    "code": "UnableToReadToken",
    "message": "OAuth token submitted with the request can not be parsed.",
    "innerError": {
      "request-id": "880a2e95-5e47-4b74-9ff5-c5f4e9a9feed",
      "date": "2020-04-16T10:47:11"
    }
  }
}

我怀疑它不是有效的访问令牌,或者我错过了 Azure 中的某个设置,或者它根本不受支持?

从 OpenID Connect 调回的 access_token 是

eyJ0eXAiOiJKV1QiLCJub25jZSI6ImhGR252WFNUSjlKcXRDWDgtTUNOclkzZDFWdzN3cDJlSFdBX2ZoN2tzeXMiLCJhbGciOiJSUzI1NiIsIng1dCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSIsImtpZCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSJ9.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC85MTg4MDQwZC02YzY3LTRjNWItYjExMi0zNmEzMDRiNjZkYWQvIiwiaWF0IjoxNTg3MDk5MjczLCJuYmYiOjE1ODcwOTkyNzMsImV4cCI6MTU4NzEwMzE3MywiYWlvIjoiNDJkZ1lOakRaenR0QWdmTE9hVXQ1eHdQcmQvTkJBQT0iLCJhcHBfZGlzcGxheW5hbWUiOiJpTHV2UnVuIiwiYXBwaWQiOiI3MDY1YmFlMS00NTA1LTQ1YzMtYjFkNS1lMDAwNGNiMmE2YmYiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC85MTg4MDQwZC02YzY3LTRjNWItYjExMi0zNmEzMDRiNjZkYWQvIiwidGlkIjoiOTE4ODA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkIiwidXRpIjoiaTVyTnA4VWZWRS1DckRDWkk1OFRBQSIsInZlciI6IjEuMCIsInhtc190Y2R0IjoxNDMxNjQxNDk4fQ.Y7lgr0b7Z286Sh3xv8_KQ-_cGYPnzHES0a3871FWNPSoTu1GDSuLj6ItV-jp9959gumKGHEnYDqBC1GsQnv5xq8er6hqT3PCiVQu8-1FE5u54HkTcFayPrg9n4db2mhCTflJr_q5wSKkKBAOF0d7q55-pskNLjBuN-LVF guIRDgp-IBFFfPzptk6SFvj_pkjk4dAVFyNvijcpGkIZ_43DW2Si1IeU_7ek-D9K9wr_PBj_hqKJrOc0lgYcrq0TsuM55F1-MOVjpWmsvU46BM0L7ESSBOIkbpcBkD7fOroW3DjgvHs6xUhEc-xjqNcFvkdw1HUr76MHzOTy6gUlXKheg

有人可以帮助我或指导我走向正确的道路吗? :)

【问题讨论】:

  • 首先,访问令牌中似乎没有权限。您可以在jwt.ms 中对其进行解码。但是错误消息与权限无关。这意味着您的访问令牌未正确放入标头中。此外,我注意到您正在使用 Microsoft Graph 来查询个人帐户的照片。目前不支持。见docs.microsoft.com/en-us/graph/api/…
  • 访问令牌已经在头部。是的,我也读过。所以当时不支持。非常感谢您的帮助:)
  • 如果您不介意,我会发布关于我们上面讨论的信息的答案。您可以接受它作为答案(单击答案旁边的复选标记以将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。

标签: microsoft-graph-api


【解决方案1】:

根据我们的讨论,Get photo 不支持委派(个人 Microsoft 帐户)。

您正在尝试获取个人 Microsoft 帐户的照片。所以恐怕无法实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多