Teams團隊的成員列表API的已知問題

如果大家經常使用Graph API來對Teams進行操作管理的話,有時候會遇到一些奇怪的問題,我前兩天還在Stack Overflow上回答了一個用戶的問題,這個問題我自己也遇到過。所以我想用這篇文章來分享一下,萬一以后大家遇到類似的問題,就有所防備。

這個問題實際上是一個已知問題,官方的解釋在這里

We recommend that when you add an owner, you also add that user as a member. If a team has an owner who is not also a member, ownership and membership changes might not show up immediately in Microsoft Teams. In addition, different apps and APIs will handle that differently. For example, Microsoft Teams will show teams that the user is either a member or an owner of, while the Microsoft Teams PowerShell cmdlets and the /me/joinedTeams API will only show teams the user is a member of. To avoid confusion, add all owners to the members list as well.

講的是說,如果我們需要給一個團隊(team)增加一個owner,那你不單單需要把這個用戶加入到owner列表,還需要把他加入到member成員列表。如果你直加了一個列表,那就可能有問題。不同的程序對于這個用戶的判斷會不一致。

比如:你把用戶A加入到一個團隊(team)的owner列表,但是沒有把這個用戶加入到成員member列表。那么,你使用powershell的cmdlet,和/me/joinedTeams這個API就會認為這個用戶A還不在這個團隊里。

所以,為了防止這類事情的發生,建議的做法是:如果你要把用戶加入到owner列表,那同時你也應該把這個用戶加入到成員列表。

另外,還有一個已知問題,我之前也遇到了。官方是這么說的:

Known issue: when DELETE /groups/{id}/owners is called, the user is also removed from the /groups/{id}/members list. To work around this, we recommend that you remove the user from both owners and members, then wait 10 seconds, then add them back to members.

意思是:當你想把一個用戶移出owner列表,也就是說這個用戶不在是這個團隊的擁有者。我們通常會使用這個API

DELETE /groups/{id}/owners/{userId}/$ref

但是詭異的地方是,如果你這么做了之后,這個用戶會自動從這個團隊的member成員列表里移出,也就是說,他連普通的成員身份都沒有了。也就是說相當于自動幫你調用了DELETE /groups/{id}/members/{userId}/$ref接口。

目前官方建議的workaround是當你調用DELETE /groups/{id}/owners/{userId}/$ref把這個用戶移出owner擁有者列表后,等10秒鐘(注意,官方建議要等10秒鐘,不能立刻),然后再調用下面這個接口來吧用戶加回到member成員列表。

POST /groups/{id}/members/$ref

希望這兩個已知問題能盡快得到產品團隊的解決,也希望這篇文章能在大家遇到類似的問題時,對大家有幫助。

另外,強烈推薦微軟牛人Ares陳老師的Teams開發系列視頻講座:Microsoft Teams開發入門和實踐 https://aka.ms/teamsdev163study ,從入門到精通Teams開發!本篇博客里提到的GraphAPI在章節4中有詳細解說。

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

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

相關文章

OSChina 周三亂彈 —— 爸爸說,這個是從他硬盤里掉出來的

2019獨角獸企業重金招聘Python工程師標準>>> Osc亂彈歌單(2018)請戳(這里) 【今日歌曲】 煥煥 :分享鄭秀文的單曲《唉聲嘆氣》 《唉聲嘆氣》 手機黨少年們想聽歌,請使勁兒戳(這里&am…

改進的二分查找

1 import java.util.Comparator;2 3 public class MyUtil {4 5 public static <T extends Comparable<T>> int binarySearch(T[] x, T key) {6 return binarySearch(x, 0, x.length- 1, key);7 }8 9 // 使用循環實現的二分查找 10 public static…

LuckyDraw app被評為Microsoft365 App Award

今天查了一下LuckyDraw app&#xff0c;突然發現我上半年開發的Teams app: LuckyDraw&#xff0c;竟然多了一個勛章圖標&#xff0c;點進去一看是微軟給我的app評了一個”Microsoft 365 App Award”。Super surprise!!&#x1f60d;&#x1f60d;&#x1f60d; 看來我必須要抓…

Python學習筆記__10.4章 進程VS線程

# 這是學習廖雪峰老師python教程的學習筆記1、概覽我們介紹了多進程和多線程&#xff0c;這是實現多任務最常用的兩種方式。現在&#xff0c;我們來討論一下這兩種方式的優缺點要實現多任務&#xff0c;通常我們會設計Master-Worker模式&#xff0c;Master負責分配任務&#xf…

Filebeat占用內存和CPU過高問題排查

經反饋&#xff0c;新部署的服務器上filebeat占用的cpu過高&#xff0c;且內存只增不減。 而據我了解filebeat非常輕量級&#xff0c;正常情況下占用的資源幾乎都能忽略不計&#xff0c;所以懷疑是filebeat本身出了問題。 第一時間查看filebeat日志&#xff08;默認路徑/var/lo…

Teams架構剖析(2019年版本)

在上個月剛剛結束的Ignite大會上&#xff0c;Teams產品的架構師Bill Bliss給大家奉上了最新的Teams的架構設計&#xff0c;之前2017年和2018年微軟的技術大會上都Teams架構的分享&#xff0c;但是今年大神把Teams架構講得很深入&#xff0c;覆蓋面很廣。我這里就挑一些&#xf…

pycharm工具下代碼下面顯示波浪線的去處方法

近期安裝了python后&#xff0c;發現使用pycharm工具打開代碼后發現代碼下邊會有波浪線的顯示&#xff1b;但是該代碼語句確實沒有錯誤&#xff0c;通過查詢發現了兩種方法去掉該波紋的顯示&#xff0c;下面就具體說明一下&#xff1a; 方法一&#xff1a; 打開pycharm在右下方…

js面向對象與PHP面向對象總結

js面向對象&#xff1a; 1.什么是對象&#xff1f; 對象&#xff1a;任何實體都是對象&#xff0c;擁有屬性和方法兩大特征 屬性&#xff1a;描述事物的特點&#xff1b; 方法&#xff1a;實物擁有的行為&#xff1b; 2.在JS里 Person.name"zhang" Person.fnfunction…

面向全球用戶的Teams app之Culture數字篇

我前幾周在微軟Ignite the Tour北京大會上&#xff0c;分享了如何開發一款面向全世界用戶的Teams App&#xff0c;里面介紹了在開發Global Ready的app時會遇到的各種挑戰&#xff0c;反響很好。所以我準備寫幾篇文章&#xff0c;將這些內容分享給沒有時間參加大會的同學。 這篇…

Dubbo原理與框架設計

Dubbo是常用的開源服務治理型RPC框架&#xff0c;在之前osgi框架下不同bundle之間的方法調用時用到過。其工作原理和框架設計值得開源技術愛好者學習和研究。 一、Dubbo的工作原理 調用關系說明 服務容器負責啟動&#xff0c;加載&#xff0c;運行服務提供者。服務提供者在啟動…

面向全球用戶的Teams app之Culture計量單位和禁忌篇

我在前一篇文章里分享了Global Ready的app時會遇到的不同文化對于數字方面的挑戰。這篇我繼續分享不同文化對于計量單位和禁忌方面的挑戰。 我們先來看一個例子&#xff0c;假如有一個teams bot&#xff0c;它告訴你一些動物的速度&#xff0c;比如它告訴你&#xff1a; 獵豹能…

【我的Android進階之旅】Android自定義Lint實踐

背景 2017年8月份的時候&#xff0c;我在公司開始推廣Lint、FindBugs等靜態代碼檢測工具。然后發現系統自帶的Lint檢測的Issue不滿足我們團隊內部的特定需求&#xff0c;因此去自定義了部分Lint規則。這個檢測運行了大半年&#xff0c;運行良好&#xff0c;團隊的代碼規范也有了…

存儲結構與索引

一、SQL數據存儲的基本介紹 數據庫中的數據存儲涉及頁&#xff08;Page&#xff09;和區&#xff08;Extent)這兩個概念了。SQL server中數據存儲的基本單位是頁。為數據庫中的數據文件&#xff08;.mdf或.ndf&#xff09;分配的磁盤空間可以從邏輯上劃分成頁&#xff08;從0到…

面向全球用戶的Teams app之時區篇

我在前兩篇文章里分享了Global Ready的app時會遇到的不同文化的挑戰。這篇我繼續分享在時區方面的挑戰。 時間是最復雜的&#xff0c;最容易出錯的部分。時間復雜的最根本原因是時區問題。 首先&#xff0c;大家都知道&#xff0c;我們地球是圓的&#xff0c;這個意味著如果大…

Linux: Nginx proxy_pass域名解析引發的故障

背景 業務架構&#xff1a; 部署細節&#xff1a;  兩容器均部署在同一機器上&#xff0c;通過 docker-compose 編排&#xff0c;并且通過link方式鏈接。 故障描述 在有次更新代碼時&#xff0c;發現前端能夠打開&#xff0c;但是所有接口請求全是502(Bad GateWay) 故障排查 …

Oracle建立全文索引詳解

Oracle建立全文索引詳解1.全文檢索和普通檢索的區別 不使用Oracle text功能&#xff0c;當然也有很多方法可以在Oracle數據庫中搜索文本&#xff0c;比如INSTR函數和LIKE操作&#xff1a; SELECT *FROM mytext WHERE INSTR (thetext, Oracle) > 0; SELECT * FROM mytext WHE…

面向全球用戶的Teams app之夏令時篇

我在前兩篇文章里分享了Global Ready的teams app時會遇到的不同挑戰。這篇我繼續分享在夏令時方面的挑戰。 夏令時&#xff0c;主要是為了節約能源&#xff0c;英文里通常縮寫成DST(Daylight Saving Time)。一般在天亮早的夏季人為將時間調快一小時&#xff0c;可以使人早起早…

爬取全部的校園新聞

1.從新聞url獲取新聞詳情&#xff1a; 字典,anews 2.從列表頁的url獲取新聞url&#xff1a;列表append(字典) alist 3.生成所頁列表頁的url并獲取全部新聞 &#xff1a;列表extend(列表) allnews *每個同學爬學號尾數開始的10個列表頁 4.設置合理的爬取間隔 import time import…

面向全球用戶的Teams app之合規性篇

我在前兩篇文章里分享了Global Ready的app時會遇到的不同挑戰。這篇我繼續分享在合規性方面的挑戰。 說到合規性compliance&#xff0c;不得不說GDPR標準&#xff0c;當我們發布了一個teams app后&#xff0c;微軟會要求開發人員做一個security self assessment&#xff0c;這…

C進階 - 內存四驅模型

一.內存四驅模型 不知我們是否有讀過 《深入理解 java 虛擬機》這本書&#xff0c;強烈推薦讀一下。在 java 中我們將運行時數據&#xff0c;分為五個區域分別是&#xff1a;程序計數器&#xff0c;java 虛擬機棧&#xff0c;本地方法棧&#xff0c;java 堆&#xff0c;方法區。…