如何获取租户中所有的Team
大家在使用Graph API開發(fā)Teams App的時(shí)候,有時(shí)候會(huì)需要獲取某個(gè)租戶Tenant的所有team,在寫這篇文章的時(shí)候Graph API并沒有提供這么一個(gè)功能,沒有一個(gè)類似于”GET /teams”的api。
在Micorsoft Graph官方文檔的已知問(wèn)題中,也提到了目前不支持這么一個(gè)api。
https://docs.microsoft.com/en-us/graph/known-issues?view=graph-rest-beta#get-teams-is-not-supported
那如果我們開發(fā)的app想要獲取team列表,有其他什么方法嗎?
我們現(xiàn)在想一下Microsoft Teams中每個(gè)team是一個(gè)什么概念?在AzureAD中,一個(gè)team實(shí)際上就是一個(gè)AzureAD中的group。group是可以通過(guò)graph api來(lái)列舉的。實(shí)際上在Group中有一個(gè)屬性叫resourceProvisioningOptions,它的定義如下:?https://docs.microsoft.com/en-us/graph/group-set-options
| Teams | Provision this group as a team in Microsoft Teams. Additionally, this value can be added to the resourceProvisioningOptions string collection on group update through a?PATCH?operation, in order to convert an existing Microsoft 365 group to a team. | The group is a regular Microsoft 365 group without Teams capabilities. |
可以知道,原來(lái)我們通過(guò)這個(gè)屬性就可以來(lái)判斷這個(gè)group是不是一個(gè)Teams里的team。
GET /groups?$select=id,resourceProvisioningOptions這個(gè)接口會(huì)返回如下的內(nèi)容
{"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups","value": [{"id": "00e897b1-70ba-4cb9-9126-fd5f95c4bb78","resourceProvisioningOptions": []},{"id": "00f6e045-f884-4359-a617-d459ee626862","resourceProvisioningOptions": ["Team"]}] }可以發(fā)現(xiàn)第一個(gè)group不是team,第二個(gè)group是,因?yàn)榈诙€(gè)group的?resourceProvisioningOptions?里含有?Team。
看到這里,大家可能會(huì)問(wèn),一個(gè)租戶里的group有很多,我如果拿到了所有的group,再自己過(guò)濾是不是有點(diǎn)浪費(fèi)。有沒有更好的方法來(lái)直接返回所有的team?
有!我們需要借助方便的OData查詢語(yǔ)法,如下:
GET /groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')上面這個(gè)調(diào)用就可以返回租戶中的所有的team,實(shí)際上就是?GET /teams?要做的東西了。注意上面的?$filter?的表達(dá)式,如果大家想具體深入的學(xué)習(xí)這些查詢條件的語(yǔ)法,可以查看這個(gè)文檔,學(xué)會(huì)了后你會(huì)覺得使用graph api原來(lái)如此方便。可以把很多原來(lái)需要在查詢端做的事情,都讓graph api服務(wù)來(lái)完成。
https://docs.microsoft.com/en-us/graph/query-parameters#filter-parameter
總結(jié)
以上是生活随笔為你收集整理的如何获取租户中所有的Team的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用Python绘制了若干张词云图,惊艳了
- 下一篇: 用 Python 绘制了若干张词云图,惊