【问题标题】:Microsoft Graph profile endpoint does not return the user's nameMicrosoft Graph 配置文件终结点不返回用户名
【发布时间】:2017-05-10 01:38:20
【问题描述】:

我正在使用图形 API (https://graph.microsoft.com/v1.0/me) 检索用户信息,但我得到的信息很少:

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users/$entity",
  "id": "e163a120378.....",
  "userPrincipalName": "myemail@example.com"
}

(省略具有空值的属性)

我确定该用户至少有一个名称(可能还有其他一些属性),我希望它包含在响应中,但事实并非如此。

使用令牌 enpoint https://login.microsoftonline.com/common/oauth2/v2.0/authorize 在范围 https://graph.microsoft.com/User.Read 中请求了用于请求的访问令牌。我尝试了许多其他范围,但没有结果。

如何检索包含更多详细信息(如姓名)的用户信息?

【问题讨论】:

  • 此租户上的所有用户都会发生这种情况,还是只发生在这个用户身上?
  • 这似乎发生在所有用户身上
  • 您的应用和Graph Explorer 看到的结果是否相同?
  • 是的,尽管 Graph Explorer 还包括 "givenName": ""、"surname": ""。该帐户同时配置了名字和姓氏。
  • 您是使用其中一种 SDK 还是直接进行 HTTP 调用?另外,您是否尝试将这些字段添加到选择语句 (?$select=givenName,surname)?

标签: azure oauth-2.0 azure-active-directory microsoft-graph-api azure-ad-graph-api


【解决方案1】:

要解决此问题,您需要通过https://profile.live.com 使用名字和姓氏更新此帐户的个人资料。填充后,这些值将显示在 Graph 中。

有多个系统支持 Microsoft 帐户。 Graph 正在从 Outlook.com 提取配置文件数据。 https://profile.live.com 站点包含该图表正在从中读取的 Outlook 配置文件。用户访问 Outlook.com 后,所有配置文件数据都会被预配,然后与 https://account.microsoft.com 同步。然而,在此之前,配置文件并未完全填充。

【讨论】:

  • 我可以使用我的个人帐户执行此操作,但期望我系统的所有用户都在 profile.live.com 更新他们的帐户不太现实,是吗?
  • 我同意,但只是澄清一下,我认为他们不需要更新他们的个人资料,因为他们需要在个人资料填充之前至少登录一次 Outlook.com。
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多