繁体   English   中英

Microsoft Graph API:获取用户组织

[英]Microsoft Graph API: get user organization

我正在使用 Microsoft Graph API 来获取用户的一些详细信息。 我还使用 AD 进行身份验证和授权。

在此应用程序中,用户在登录后将搜索一些用户,并需要所有与搜索匹配的用户的详细信息。

我使用过滤器点击了users api ,但我没有得到有关匹配用户的公司名称的任何详细信息。

https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'jo')

下面是同样的回复

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$skiptoken=X%2744537074020001000000203A636F6D7061735F766A61407465737473636F7270696F67726F75702E6E657429557365725F33386664353661362D366361612D343939332D393264642D383439633938613039393033B900000000000000000000%27",
  "value": [
        {
            "businessPhones": [],
            "displayName": "John Doe",
            "givenName": "John",
            "jobTitle": null,
            "mail": null,
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": "Doe",
            "userPrincipalName": "jdoe@mycomp.net",
            "id": "c8f63ba1-5150-44c1-b456-468040f12345"
        }
  ]
}

我需要做什么才能为我的组织的用户获取公司名称?

默认情况下, user资源仅返回属性的子集。 根据文档

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

换句话说,您需要将$select参数添加到您的查询中,以列出您想要返回的属性。 例如,如果您想检索iduserPrincipalNamecompanyName ,您可以使用:

https://graph.microsoft.com/v1.0/users?$select=displayName,id,jobTitle,companyName

完整的可用属性集可以在用户资源类型文档中找到。

我想通过一次登录获得所有用户的详细信息

这不可能。 获取组织详细信息的唯一方法是使用https://graph.microsoft.com/v1.0/organization api。

您需要提供访问令牌才能调用此 api。 在您的应用程序中,您使用一位用户登录以获取访问令牌。

如果您在令牌请求 url 中使用 common,您将获得该登录用户的默认组织。

如果您在请求 url 中使用特定租户,您将获得该租户的组织详细信息。

如果只想获取用户的companyName,可以调用https://graph.microsoft.com/beta/users/{userid}获取。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM