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