【问题标题】:Use Microsoft Graph API to Obtain User Primary Email Address using Email Alias使用 Microsoft Graph API 使用电子邮件别名获取用户主电子邮件地址
【发布时间】:2020-10-28 15:39:25
【问题描述】:

我在 PowerShell 脚本中使用 Microsoft Graph API 来自动创建 Microsoft Teams 团队。我正在从不包含 Microsoft 用户 ID 的专有非 Microsoft 应用程序的数据库中获取电子邮件地址。需要 Microsoft 用户 ID 才能将成员添加到团队。

我正在使用 Microsoft Graph URI:

graph.microsoft.com/v1.0/users/

获取用户ID。

不幸的是,该数据库有时包含电子邮件别名,而不是用户的主要电子邮件地址。当脚本尝试使用别名获取此人的用户 ID 时,Graph API 调用会返回错误。

例如,当主要电子邮件地址是“jsmith@abc.com”,但数据库包含他的别名“joe@abc.com”时,我希望能够使用过滤器调用该 API,例如:

graph.microsoft.com/v1.0/users?$filter=alias eq 'joe@abc.com'

但我找不到这样的过滤选项。

如果有任何解决此问题的提示,我将不胜感激。

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案1】:

    user object 有一个名为otherMails 的属性。这是一个多值属性。

    filter syntax 对于多值属性是不同的。

    要按别名过滤用户,您需要使用:

    https://graph.microsoft.com/v1.0/users?$filter=otherMails/any(c:c eq 'joe@abc.com')

    【讨论】:

    • 我会尝试一下并用我的结果来回应。非常感谢您的回复!
    • 我用一个我知道有别名的用户对此进行了测试,但它没有找到它。这看起来我们走在正确的轨道上,所以我将继续搜索这个过滤器构造。
    • 您可以获取具有别名的用户的 ID,并检查您可以在哪些字段中找到它。所以users/user-id-of-the-user?$select=* 并检查您在哪个字段中看到了别名。您需要范围 User.Read.All 来获取所有属性字段。
    猜你喜欢
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多