Teams bot的調用限制

上個月Teams團隊發布了對Teams app/bot調用api的頻率的限制。這也從側面說明Teams app越來越多,Teams團隊需要優先保證Teams本身的計算資源,來提供流暢的用戶體驗。

具體的每個限制指標在這里: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/bots/rate-limit

我解釋一下目前的做法,teams app需要注意的地方,以及一些容易混淆的概念:

  • Teams會對大家的api服務返回HTTP 429錯誤,可能大家之前很少遇到這個status code。429是Too Many Requests,就是請求數太多。服務器無法處理。當達到一些限制條件后,teams就會返回這個code

  • 大家的api服務當遇到這個429時不要驚慌,這個是很平常的預料中的錯誤,需要做的是稍微等待一會兒,然后再次發送相同的請求給到Teams,如果你的api服務中已經有了retry機制,那就比較簡單。如果沒有,可以使用這段代碼來重試。

public class MyRetryStrategy : ITransientErrorDetectionStrategy
{public bool IsTransient(Exception ex){var httpOperationException = ex as HttpOperationException;if (httpOperationException != null){return httpOperationException.Response != null && (int)httpOperationException.Response.StatusCode == 429);}return false;}
}var exponentialBackoffRetryStrategy = new ExponentialBackoff(5, TimeSpan.FromSeconds(2),TimeSpan.FromSeconds(8), TimeSpan.FromSeconds(16), TimeSpan.FromSeconds(32));// Setup Retry Policy
var retryPolicy = new RetryPolicy(new MyRetryStrategy(), fixedIntervalRetryStrategy);await retryPolicy.ExecuteAsync(() => connector.Conversations.ReplyToActivityAsync((Activity)reply)).ConfigureAwait(false);

上面是C#的代碼,對于其他語言,做法也類似,當接收到429代碼時,等待一段時間,然后重試,再不行再等待一段時間,再重試。

  • 這次的限制分為三個等級:
    • 第一級:你的bot對于一個聊天,這個聊天可以是:一個1對1的聊天,用戶和bot的聊天,團隊中一個頻道的聊天
    • 第二級:所有bot對于一個聊天的限制,也就是說如果這個頻道中有很多bot,大家共享這個限制。如果一個bot非常頻繁的往頻道中發送消息,那意味著其他bot會很大概率收到429出錯代碼
    • 第三級:你的bot針對datacenter的限制。這個大家可能不好理解。實際上Teams整個系統部署Azure上,但是并不是全部覆蓋了所有的Azure數據中心,我們的bot在收到一個message payload時可以看到有一個字段。
{"name": "composeExtension/fetchTask","type": "invoke","timestamp": "2019-06-17T14:32:04.956Z","localTimestamp": "2019-06-18T00:32:04.956+10:00","id": "f:1361493733941541435","channelId": "msteams","serviceUrl": "https://smba.trafficmanager.net/apac/","from": {"id": "29:1l8B9m9SOOdHTqLDgmXvSrJyHfwd2ihooa7cxgtzJ8QjQ4WFC4mA_8K2Sa7jL-xUh7g4yh8sZIiDOX6vTtoaz6w","name": "Tony Xia","aadObjectId": "56c6599d-9216-4078-a8cf-3f039d36e1fd"},"conversation": {"isGroup": true,"conversationType": "channel","tenantId": "aece5000-341d-493a-841d-f67e417f1447","id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"recipient": {"id": "28:89e9cdd8-f500-4696-a701-7c2323f62a86","name": "TestMsgExt"},"entities": [{"locale": "en-US","country": "US","platform": "Windows","type": "clientInfo"}],"channelData": {"channel": {"id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"team": {"id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"tenant": {"id": "aece5000-341d-493a-841d-f67e417f1447"},"source": {"name": "compose"}},"value": {"commandId": "start","commandContext": "compose","context": {"theme": "default"}},"locale": "en-US"
}

大家又看到serviceUrl這個字段嗎?

https://smba.trafficmanager.net/apac/

上面這個是表明這個是從哪個數據中心傳來的數據,APAC就是亞洲太平洋地區。

所以這個條調用限制的意思就是你的bot往一個數據中心的調用次數有限制。大家可能會問:那如果我的teams bot很流行,這個數據中心的很多企業在用這個bot,這個限制有點不公平啊。

放心,首先你的bot很難達到這個限制,如果達到了,你可以向teams團隊提申請,我相信他們肯定很愿意看到這種超級teams app,肯定愿意為你的bot放寬限制。?

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

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

相關文章

Array的sort方法

作為一個剛開始學習的前端,小結一下:sort方法: 如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元…

如何使用ARM創建Teams Bot所需要的Azure資源

相信很多devops已經全面開始使用ARM來創建azure資源了,ARM有很多方便的地方,比如簡單易學,Infrastructure as Code,但是深入使用ARM開始會發現一些有待改進的方面。這篇文章主要是分享一下我在做Teams app的時候使用ARM來創建資源…

Bot Service自帶的數據分析統計功能

每個產品上線后都希望自己能實時看到多少用戶在使用我的產品,我的服務,有多少使用量,有沒有遇到問題。市面上做用戶數據、行為分析的公司也不少,但是大多數都需要我們修改一些代碼來集成第三方的sdk庫。 我的teams app上線后也急…

LuckyDraw bot有幸被提名為微軟2019的People's Choice app

上個月微軟進行了一個全世界提名活動,目標是選出微軟2019年度People’s Choice app。 很幸運,我的LuckyDraw bot得到了來自世界各地使用者的投票,其中也包含Teams中國社區和很多朋友的支持。 https://developer.microsoft.com/en-us/microso…

圖靈社區 和 大家網

http://www.ituring.com.cn/ http://club.topsage.com/ 大家論壇 http://www.topsage.com/ http://www.dxbbba.com/ 大學生必備吧 轉載于:https://www.cnblogs.com/onelikeone/p/9023267.html

Teams內嵌的卡片image的限制

我的LuckyDraw上線后收到了不少有價值的反饋,其中有一部分是針對圖片的,有一些用戶說他們填寫了image的url,但是圖片顯示不出來。 實際上這個問題在我提交這個應用到微軟審核團隊的時候,審核團隊也提出了類似問題。但這個是Teams本…

Python 面向對象編程(進階部分)

靜態方法: 通過 staticmethod 裝飾器即可把其裝飾的方法變為一個靜態方法。普通的方法,可以在實例化后直接調用,并且在方法里可以通過self.調用實例變量或類變量,但靜態方法是不可以訪問實例變量或類變量的,一個不能訪…

分享實錄|爭議不斷地EOS,我們如何才能理性看待?

1 EOS基本介紹 EOS是Block.One公司正在研發的一個區塊鏈底層公鏈系統,目的是解決現有的區塊鏈應用性能低、安全性差、開發難度高以及過度依賴手續費的問題,實現分布式應用的性能擴展。EOS提供帳戶,身份驗證,數據庫,異步…

Teams的Incoming Webhook

我在去年的一篇文章里介紹過Teams的outgoing webhook,這個可以用來實現一個簡單的用戶和service對話機制。 Teams除了outgoing webhook以外,還有一個incoming webhook,從名字上我們也可以立刻知道,這個webhook是用來處理進入Team…

Comet OJ - Contest #0題解

傳送門 菜爆了……總共只有一道題會做的……而且也沒有短裙好難過 為啥必須得有手機才能注冊賬號啊喂……歧視么…… \(A\) 解方程 推一下柿子大概就是 \[x-\sqrt{n}yz2\sqrt{yz}\] 如果\(\sqrt{n}\)是無理數,那么就是 \[xyz,{n\over 4}yz\] 那么要滿足\(n\)必須是\…

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊 引言 #在數據庫,所謂表關系,只是人為認為的添加上去的表與表之間的關系,只是邏輯上認為的關系,實際上數據庫里面的表之間并沒有所謂的表關系 一、一對一表關系 Module #需…

Teams的manifest文件開始支持多語言

Teams發展速度飛快,Teams app的manifest文件schema也迎來了版本1.5,在這個版本里,很大的一個改進是支持多語言。 讓我們一起來看看,如何在manifest文件里配置多語言。 1,我們需要先把manifest文件設置成v1.5 {"…

白白的(baibaide)

白白的(baibaide) 有一個長度為 $n$ 的序列 $a_1, a_2, \dots, a_n$,一開始每個位置都是白色。如果一個區間中每個位置都是白色,則稱這是一個白白的區間。如果一個白白的區間向左或向右延長后都不是白白的區間了,則稱這…

如何利用Python網絡爬蟲爬取微信朋友圈動態--附代碼(下)

前天給大家分享了如何利用Python網絡爬蟲爬取微信朋友圈數據的上篇(理論篇),今天給大家分享一下代碼實現(實戰篇),接著上篇往下繼續深入。一、代碼實現1、修改Scrapy項目中的items.py文件。我們需要獲取的數…

使用Adaptive cards來構建Teams app的界面

Teams app的task module十分好用,當用戶點擊了一個卡片上的按鈕是可以在Teams里彈出一個對話框,對話框的內容可以是開發人員自己的一個網頁頁面,或者是adaptive card。 在我的LuckyDraw bot里,我比較了這兩種的優勢和劣勢&#xf…

Boosting(提升方法)之GBDT

一、GBDT的通俗理解 提升方法采用的是加法模型和前向分步算法來解決分類和回歸問題,而以決策樹作為基函數的提升方法稱為提升樹(boosting tree)。GBDT(Gradient Boosting Decision Tree)就是提升樹算法的一種,它使用的基學習器是C…

CC攻擊原理及防范方法

一、 CC攻擊的原理: CC攻擊的原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來消耗服務器資源的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候&#xff0c…

Team photo的新api

Graph API的更新速度真是快,今年9月中旬又增加了關于Team photo的兩個新的api。 https://docs.microsoft.com/en-us/graph/api/team-get-photohttps://docs.microsoft.com/en-us/graph/api/team-update-photo 今天就給大家介紹一下如何使用這兩個新的api。 實際上說…

BZOJ 1047: [HAOI2007]理想的正方形 單調隊列瞎搞

題意很簡明吧? 枚舉的矩形下邊界和右端點即右下角,來確定矩形位置; 每一個縱列開一個單調隊列,記錄從 i-n1 行到 i 行每列的最大值和最小值,矩形下邊界向下推移的時候維護一下; 然后在記錄的每一列的最大值…

分享到Teams

在今年三月份末,Teams的官方文檔推出了一個新功能:將網頁(一個URL)分享到Teams里。 也就是說開發人員現在可以很方便的開發一個頁面,頁面里有一個Teams的圖標,當訪問此頁面的最終用戶點擊這個圖標后可以將…