无法使用 Graph API 通过电子邮件找到用户

Can't find user by email using GraphAPI

几个月来我一直在使用 GraphAPI 通过电子邮件获取用户。特定用户发生了一些事情。现在我无法使用以下方法获取此用户:

signInNames/any(x:x/value eq '{email}'

这适用于所有用户,但我之前说过的除外。

我在尝试通过电子邮件检索时收到此消息:

{ 
  "odata.metadata": "https://graph.windows.net/jsmaddev.onmicrosoft.com/$metadata#directoryObjects", 
  "value":[]
}

如果我尝试通过 ObjectId 获取,我可以访问用户的信息,但 signInNames 似乎是空的:

"signInNames":[]

有没有可能导致这种情况的原因?您应该记住,此特定访问是按预期工作的。

谢谢!

这是正常的。过滤器 signInNames/any(x:x/value eq '{email}' returns 用户的 signInNames.value 等于电子邮件。

signInNames部分示例:

 "signInNames": [
    {
      "type": "userName",
      "value": "AlexW"
    },
    {
      "type": "emailAddress",
      "value": "AlexW@example.com"
    }
  ]

If I try to get by ObjectId I can access user's info but the signInNames seems to be empty

由于 signInNames 属性 为空,"signInNames":[],它将 returns "value":[].

You should remember that this particular access was working as intended.

当然,如果signInNames不为空,也可以。