我正在使用Microsoft Graph API来获取用户的一些详细信息。我还使用AD进行身份验证和授权。
在此应用程序中,用户在登录后将搜索某些用户,并需要与搜索匹配的所有用户的一些详细信息。
我使用过滤器点击了用户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": "[email protected]",
"id": "c8f63ba1-5150-44c1-b456-468040f12345"
}
]
}
为了获得组织用户的公司名称,我需要做些什么?
user
资源默认仅返回属性的子集。根据documentation:
注意:获取用户仅返回一组默认属性(businessPhones,displayName,givenName,id,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName)。使用
$select
获取用户对象的其他属性和关系。
换句话说,您需要在查询中添加一个$select
参数,该参数列出了您要返回的属性。例如,如果要检索id
,userPrincipalName
和companyName
,您可以使用:
https://graph.microsoft.com/v1.0/users?$select=displayName,id,jobTitle,companyName
可以在User Resource Type文档中找到完整的可用属性集。
我想从一次登录中为所有用户提供此详细信息
这是不可能的。 get organization details的唯一途径是使用https://graph.microsoft.com/v1.0/organization
api。
您需要提供访问令牌来调用此API。在您的应用程序中,您使用一个用户登录以获取访问令牌。
如果您在令牌请求网址中使用common,您将获得该登录用户的默认组织。
如果您在请求网址中使用特定租户,您将获得该租户的组织详细信息。
如果您只想获取用户的companyName,可以调用https://graph.microsoft.com/beta/users/{userid}
来获取它。