首页 > 解决方案 > MS Graph API:寻找用户的别名

问题描述

我一直在玩 MS graph api。好东西。

有一件事让我感到困惑,我似乎无法在用户属性中找到用户的别名。人员搜索https://graph.microsoft.com/beta/me/people?$search="123456"给了我完全正确的结果。但是没有一个属性与别名字段(employeeID,userprincipalname等)匹配。我知道它在那里,因为完整的 Outlook 客户端可以将其挖掘出来......

任何提示(可能我忽略了一些非常琐碎的事情)

展望截图: 展望截图

标签: microsoft-graph-api

解决方案


用户的“别名”保存在mailNickname. 默认情况下,此属性不会作为/user/{upn}or/me结果的一部分返回,因此您需要使用$select查询参数专门请求它。从文档中:

注意:获取用户只返回一组默认属性(businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName)。用于$select获取用户对象的其他属性和关系。

例如,调用/me返回:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
    "businessPhones": [
        "+1 412 555 0109"
    ],
    "displayName": "Megan Bowen",
    "givenName": "Megan",
    "jobTitle": "Auditor",
    "mail": "MeganB@M365x214355.onmicrosoft.com",
    "mobilePhone": null,
    "officeLocation": "12/1110",
    "preferredLanguage": "en-US",
    "surname": "Bowen",
    "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com"
}

为了返回mailNickname,您需要指定您希望使用此属性$select

/me?$select=mailNickname例如调用将返回:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(mailNickname)/$entity",
    "mailNickname": "MeganB"
}

您会注意到它$select不会添加到返回的属性中,它指定了您请求的整个集合。因此,要包括默认设置以及mailNickname您还需要添加默认属性。

例如,调用/me/?$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id,mailNickname返回:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id,mailNickname)/$entity",
    "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
    "businessPhones": [
        "+1 412 555 0109"
    ],
    "displayName": "Megan Bowen",
    "givenName": "Megan",
    "jobTitle": "Auditor",
    "mail": "MeganB@M365x214355.onmicrosoft.com",
    "mailNickname": "MeganB",
    "mobilePhone": null,
    "officeLocation": "12/1110",
    "preferredLanguage": "en-US",
    "surname": "Bowen",
    "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com"
}

推荐阅读