Microsoft Teams這款產品對於我們來說已經很熟悉了,作為開發者,我們也可以通過官方的一些開發模式來build我們自己的Teams應用。
今天快速跟大家分享一下,如何在VS Code中部署Azure Function(Azure Serverless的一種解決方案),並將其作為Teams的webhook地址。
準備環境
- 準備Azure Account和Microsoft Teams賬號
- VS Code
1) 下載安裝
2) 為VS Code安裝Azure的Extension - Microsoft Teams (客戶端或Web版都可以)
- 下載程式碼:
地址:https://github.com/paul-cheun...
新建專案
- 根據Extension的選項登入Azure Account,選擇subscription。
- VS Code開啟下載的程式碼(或自己建立),Azure的Extension就會識別到。
- 檢視專案內容。這裡就是簡單的api function,接受Activity請求模型(微軟的Bot Framework),並標記了function的trigger型別是httptrigger,認證級別也是匿名的,這樣在call這個api的時候就不需要提供token了。當然實際情況是需要有token驗證的,這裡不多介紹。
部署專案
- 1.build專案,點選Deploy to Function App,一路操作。
- 選擇對應的subscription
- 選擇deploy到已有的function app還是新建,根據自己需要。我這裡直接覆蓋已有的。
如果是新建的話,會提示輸入名稱,這裡正常輸入名稱就行,如: - 選擇Location。需要指定我們的app部署到哪個region。
- 等待部署。
或者看output的Log
提示相關resource已經建立好,部署完成。
檢查部署情況
我們登入Azure Portal檢查一下部署情況。
可以看到URL一欄,就是我們OutgoingWebhook的地址。
配置Teams裡的Webhook
上面已經將服務部署在Azure Functions上,接下來開啟Teams進行Webhook配置。
- 首先登入賬號到Teams,定位到team的app標籤頁:
- 點選Create an outgoing webhook,填寫名稱和Callback URL。
Callback URL來自這裡:
- 建立webhook完會提示儲存token(妥善儲存就行,我們這裡暫時不用它,略過認證部分)
驗證效果
以上已經成功建立了outgoing webhook,並且這個hook是呼叫到azure function的。現在測試一下效果。
- 我們再到team的channel裡給它發訊息(at它)
- 隨便發個什麼訊息,然後會得到回覆
總結
在Teams App的開發過程中,我們經常會使用ngrok來做反向代理/內網穿透,這裡就提供了另一種途徑,可以將我們寫好的bot程式碼一鍵部署到cloud端,也是有助於提高我們的開發效率。
使用serverless的azure實現來簡化我們的部署,當然還有其它的service可以達到同樣的目的,這裡算是拋磚引玉,大家可以多嘗試其他好方法。感謝閱讀。
相關連結:
https://docs.microsoft.com/en...
https://www.microsoft.com/en-...
微軟最有價值專家(MVP)
微軟最有價值專家是微軟公司授予第三方技術專業人士的一個全球獎項。29年來,世界各地的技術社群領導者,因其線上上和線下的技術社群中分享專業知識和經驗而獲得此獎項。
MVP 是經過嚴格挑選的專家團隊,他們代表著技術最精湛且最具智慧的人,是對社群投入極大的熱情並樂於助人的專家。MVP 致力於通過演講、論壇問答、建立網站、撰寫部落格、分享視訊、開源專案、組織會議等方式來幫助他人,並最大程度地幫助微軟技術社群使用者使用 Microsoft 技術。