如何獲取租戶中所有的Team

大家在使用Graph API開發Teams App的時候,有時候會需要獲取某個租戶Tenant的所有team,在寫這篇文章的時候Graph API并沒有提供這么一個功能,沒有一個類似于”GET /teams”的api。

在Micorsoft Graph官方文檔的已知問題中,也提到了目前不支持這么一個api。

https://docs.microsoft.com/en-us/graph/known-issues?view=graph-rest-beta#get-teams-is-not-supported

那如果我們開發的app想要獲取team列表,有其他什么方法嗎?

我們現在想一下Microsoft Teams中每個team是一個什么概念?在AzureAD中,一個team實際上就是一個AzureAD中的group。group是可以通過graph api來列舉的。實際上在Group中有一個屬性叫resourceProvisioningOptions,它的定義如下:?https://docs.microsoft.com/en-us/graph/group-set-options

Supported values for resourceProvisioningOptionsDescriptionDefault if not set
TeamsProvision 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.

可以知道,原來我們通過這個屬性就可以來判斷這個group是不是一個Teams里的team。

GET /groups?$select=id,resourceProvisioningOptions

這個接口會返回如下的內容

{"@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"]}]
}

可以發現第一個group不是team,第二個group是,因為第二個group的?resourceProvisioningOptions?里含有?Team

看到這里,大家可能會問,一個租戶里的group有很多,我如果拿到了所有的group,再自己過濾是不是有點浪費。有沒有更好的方法來直接返回所有的team?

有!我們需要借助方便的OData查詢語法,如下:

GET /groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')

上面這個調用就可以返回租戶中的所有的team,實際上就是?GET /teams?要做的東西了。注意上面的?$filter?的表達式,如果大家想具體深入的學習這些查詢條件的語法,可以查看這個文檔,學會了后你會覺得使用graph api原來如此方便。可以把很多原來需要在查詢端做的事情,都讓graph api服務來完成。

https://docs.microsoft.com/en-us/graph/query-parameters#filter-parameter

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277929.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql常用快速查詢修改操作

mysql常用快速查詢修改操作 一、查找并修改非innodb引擎為innodb引擎 # 通用操作 mysql> select concat(alter table ,table_schema,.,table_name, engineinnodb;) from information_schema.tables where table_schema not in (information_schema,mysql,performance_schem…

ElasticSearch教程——自定義分詞器(轉學習使用)

一、分詞器 Elasticsearch中,內置了很多分詞器(analyzers),例如standard(標準分詞器)、english(英文分詞)和chinese(中文分詞),默認是standard. s…

使用Azure Serverless來開發Teams App

Azure Function可以說比較早期的一個serverless服務,隨著這些年云服務的大行其道,Serverless在概念越來越火,什么叫serverless? Serverless computing (or serverless for short), is an execution model where the cloud provide…

Angular之RouterModule的forRoot與forChild

Angular 提供了一種方式來把服務提供商從模塊中分離出來,以便模塊既可以帶著 providers 被根模塊導入,也可以不帶 providers 被子模塊導入。 區別: forRoot creates a module that contains all the directives, the given routes, and the r…

關于 someone could be eavesdropping on you right now (man-in-the-middle attack) ssh的解決辦法

關于 someone could be eavesdropping on you right now (man-in-the-middle attack) ssh的解決辦法 記錄工作中遇到的問題 someone could be eavesdropping on you right now (man-in-the-middle attack) ssh  由于遠程機器或者重組或者更新了ssh server導致本地記錄的驗證信…

使用AzureFunction開發最簡單的Teams Outgoing Webhook

上篇文章講了teams app的serverless架構,這篇主要講如何真正使用Azure Function來開發一個最最簡單的Teams Outgoing Webhook。 我們先登入azure的portal,創建一個azure function。我這里創建了一個名字叫outgoing-webhook的azure function。完成后如下…

Java 基礎 之 標識符

www.verejava.com/?id1699254… /* 標識符的命名規則: 1. 是以字母,數字,下滑線_和美元符號$ 組成 2. 不能以數字開頭 3. 區分大小寫 4. 不能是java的保留關鍵字 5. 最好是見名思意 */ public class Identifier {public static void main(String[] args…

Ubuntu宿主機與VMware中其他系統虛擬機的互通

Ubuntu做宿主機,VMware中創建Windows10,并且通過三種模式實現兩系統互通,其實并非是件難事。在有線網卡未接網線的環境下,關閉兩系統防火墻,基本遵從下文便可實現。 轉載:https://note.youdao.com/ynotesha…

使用Azure輕松實現Teams App的全球合規性

我在之前的一篇博客里面講了合規性對于我們Teams app是非常重要的,因為office365平臺就是面向全世界用戶的,我們開發的teams app一旦發布后,立刻就會有各國各地區的用戶來進行安裝使用,所以符合用戶所在地區的要求是非常重要的。 …

【php復習之】php創建數組的幾種方式

1、array()函數 1.1無key值 $arrarray(1,2,3,4); 1.2鍵值對 $arrarray( name>myj,age>18,phone>1888888888);1.3空數組 $arrarray(); 2、compact()函數 compact函數可以把變量轉換為數組。 $a aaa;$b bbb;$c ccc;$arr3 compact(a,b,c);輸出:{"a&q…

ADC知識(2)——直流參數(輸入電壓參考,參考電流輸入,積分非線性誤差,差分非線性誤差)...

目錄 四、 輸入參考電壓范圍 五、 參考電流 六、 非線性問題 差分非線性誤差 積分非線性 四、 輸入參考電壓范圍 大多數數據手冊中,將它定義為一個特定的參考電壓值,通常這個電壓作為 此轉換器最常用的參考電壓。在參考輸入電壓…

LuckyDraw app使用CosmosDB的成本分析

我在以前的博客里說過我的LuckyDraw app在數據存儲方面使用的是 Azure Table Storage,當時選擇這個的原因是成本考慮,因為它實在是便宜,對于我這種個人開發維護的免費的teams app來說,成本是一個很重要的考量點。 當然&#xff0…

React 重溫之 組件生命周期

生命周期 任何事物都不會憑空產生,也不會無故消亡。一個事物從產生到消亡經理的各個階段,我們稱之為 生命周期。 具體到我們的前端組件上來,一個組件的生命周期可以大體分為創建、更新、銷毀這個三個階段。 本文主要介紹React 的組件生命周期…

遷移聊天記錄到Teams

有一些朋友問我teams是否支持將其他平臺/系統里的聊天記錄遷移某個channel里,答案是肯定的,teams團隊在去年年中的時候就提供了這個功能。這個功能是通過graph api來完成的,我們今天就來看看如何遷移聊天記錄到teams里。 首先,我…

leetcode-191-Number of 1 Bits

題目描述: Write a function that takes an unsigned integer and returns the number of 1 bits it has (also known as the Hamming weight). Example 1: Input: 11 Output: 3 Explanation: Integer 11 has binary representation 000000000000000000000000000010…

androidsdk里的android.bat和uiautomatorview.bat啟動就閃退問題

進入D:\androidsdk\tools文件夾: 使用編輯文件工具: rem Check we have a valid Java.exe in the path.set java_execall lib\find_java.bat 替換成下列代碼: rem Check we have a valid Java.exe in the path.set java_exeC:\Program Files\…

10 個優質的 Laravel 擴展推薦

這里有 10 個用來搭建 Laravel 應用的包 為何會創建這個包的列表?因為我是一個「比較懶」的開發者,在臉書上是多個 Laravel 小組的成員。平日遇到最多的問題就是開發是需要用那些包。我很懶所以我不想每次都從頭開始搞這些東東。 為何此文沒有包括管理包…

Teams AppId, InstallationId 和 ExternalId 的區別

大家如果看teams的 graph api 開發文檔,可能會把 app id, installation id 和 external id 搞混,我自己一開始的時候就有點被搞暈了,再加上app manifest里面的 id 和 bot id,基本就徹底暈掉了。 那我們今天這篇文章就來講講這幾種…

osi參考模型(開放系統互連參考模型)

自互聯網誕生以來,隨著網絡飛速發展,用戶迫切要求能在不同體系結構的網絡空間交換信息,使得不同的網絡能夠互聯起來。 國際化標準組織(International Organization for Standardization,即ISO)從1977年開始…

Java:反射+泛型:獲取類型參數的實例

2019獨角獸企業重金招聘Python工程師標準>>> 場景描述&#xff1a; 我需要開發四個頁面&#xff0c;每個頁面都是只涉及增刪改查的基本邏輯。 最簡單的寫法&#xff1a; 創建四個接口A,B,C,D&#xff0c;每個接口中都聲明了增刪改查四個方法,完全一致 public Map<…