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

上篇文章講了teams app的serverless架構,這篇主要講如何真正使用Azure Function來開發一個最最簡單的Teams Outgoing Webhook。

我們先登入azure的portal,創建一個azure function。我這里創建了一個名字叫outgoing-webhook的azure function。完成后如下圖,記住這個azure function的URL,我這里是?https://outgoing-webhook.azurewebsites.net

OutgoingWebhook

在左邊菜單里選擇”Functions”,點擊”Add”創建一個新的function

OutgoingWebhook

選擇Trigger,我們使用HTTP Trigger

OutgoingWebhook

輸入我們function的名字,我這里叫HandleMessage,有一點需要注意,Authorization level需要選擇”Anonymous”,然后點擊Create Function

OutgoingWebhook

完成后就可以看到我們有了HandleMessage這個函數。

OutgoingWebhook

輸入我們的outgoing webhook代碼。

OutgoingWebhook

#r "Newtonsoft.Json"using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;public class Message
{public string Text { get; set; }
}public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{log.LogInformation("C# HTTP trigger function processed a request.");string requestBody = await new StreamReader(req.Body).ReadToEndAsync();var message = JsonConvert.DeserializeObject<Message>(requestBody);return new OkObjectResult(new Message { Text = "Echo: " + message.Text });
}

回到Teams,先選擇需要添加outgoing webhook的一個team,選擇”Manage team”

OutgoingWebhook

進入”Apps”頁面,在右下方,點擊 “Create an outgoing webhook”,你有可能看不到這個選項,如果看不到,你需要用管理員賬號按照下面的步驟到office365后臺進行設置

OutgoingWebhook

使用你的Office365管理員賬號登入”https://portal.office.com”,點擊”Admin”菜單

OutgoingWebhook

在左側找到”Teams”菜單

OutgoingWebhook

然后找到 “Teams app”,點擊”Permission policies”,點擊你所在policy組,我這里是默認的”Global (Org-wide default)”

OutgoingWebhook

確保Custom apps是Allow all apps

OutgoingWebhook

再到Setup policies,確保 “Upload custom apps”是打開的狀態

OutgoingWebhook

回到Teams,刷新頁面,或者重新登入,現在你應該可以看到 “Create an outgoing webhook”的連接了,點擊它。

OutgoingWebhook

在彈出的頁面里輸入你的webhook名字,和URL。?OutgoingWebhook

我這里使用名字”OutgoingWebhookTest”,URL是https://outgoing-webhook.azurewebsites.net/api/HandleMessage。這個URL就是我們前面創建的azure function的URL,加上function的名字。

{azure function url}/api/{http-triggered function name}

OutgoingWebhook

創建完后進入一個channel,at這個webhook,我這里是 @outgoingWebhookTest

OutgoingWebhook

后面跟上你想發給這個webhook的文字。

OutgoingWebhook

發送后,等幾秒鐘后,你就可以收到我們function發回來的回復了。

OutgoingWebhook

如果你點開Azure Function的log,可以實時的看到我們function被teams調用的記錄

OutgoingWebhook

使用Azure Function開發的好處是代碼簡單,不需要ngrok之類的工具,而且當你webhook只是用來自己測試玩玩,基本是免費的,這也是Azure serverless的一大優勢!

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

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

相關文章

Java 基礎 之 標識符

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

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

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

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

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

【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);輸出&#xff1a;{"a&q…

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

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

LuckyDraw app使用CosmosDB的成本分析

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

React 重溫之 組件生命周期

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

遷移聊天記錄到Teams

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

leetcode-191-Number of 1 Bits

題目描述&#xff1a; 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文件夾&#xff1a; 使用編輯文件工具&#xff1a; rem Check we have a valid Java.exe in the path.set java_execall lib\find_java.bat 替換成下列代碼&#xff1a; rem Check we have a valid Java.exe in the path.set java_exeC:\Program Files\…

10 個優質的 Laravel 擴展推薦

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

Teams AppId, InstallationId 和 ExternalId 的區別

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

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

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

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

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

servlet(1)

servlet類分級&#xff1a; 1.ServletConfig接口類&#xff1a;理解為讀取servlet配置的類&#xff0c;里面有四個抽象方法如下&#xff1a; ①getServletName:獲取servlet在web.xml中的名字 ②getServletContext&#xff1a;獲取Servlet上下文&#xff0c;相當于web項目管理所…

如何在 Apple Silicon (M1) 上開發 Teams App

apple 在幾個月前發布了自家的芯片 M1&#xff0c;由于將多核cpu&#xff0c;多核gpu&#xff0c;神經網絡運算&#xff0c;內存和其他一切處理部件高度整合在一起&#xff0c;大大提高數據傳輸速度。發布后好評如潮&#xff0c;我也沒有忍住&#xff0c;入手了一臺最低配的mac…

BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——題解

https://www.lydsy.com/JudgeOnline/problem.php?id5289 https://www.luogu.org/problemnew/show/P4437 考慮對于a[i]m,a[m]n&#xff0c;我們令p[j]i,p[k]m&#xff08;一定會有一對(j,k)滿足這個條件的&#xff09;&#xff0c;則我們會有p[k]a[p[j]]&#xff0c;此時我們要…

集成學習-Adaboost

Adaboost 中文名叫自適應提升算法&#xff0c;是一種boosting算法。 boosting算法的基本思想 對于一個復雜任務來說&#xff0c;單個專家的決策過于片面&#xff0c;需要集合多個專家的決策得到最終的決策&#xff0c;通俗講就是三個臭皮匠頂個諸葛亮。 對于給定的數據集&#…

主動給團隊或用戶安裝Teams App

在寫這篇文章的時候&#xff0c;這個新功能還處在 Public Review&#xff0c;這意味著可能&#xff08;很小的可能性&#xff09;這里寫的方法在正式發布前還會有一些改動。 之前有一些做teams app開發的朋友問過我&#xff0c;能不能主動給一個team或者一個用戶安裝一個指定的…

thinkphp5多級控制器是什么?怎么使用?

thinkphp5多級控制器是什么&#xff1f;怎么使用&#xff1f; 一、總結 1、多級控制器是讓控制器的級數變成多級&#xff0c;也就是controller目錄下可以新建其它目錄。 2、使用的話注意目錄下的控制的的命名空間&#xff08;加上目錄名&#xff09;&#xff08;namespace app\…