使用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
在左边菜单里选择”Functions”,点击”Add”创建一个新的function
选择Trigger,我们使用HTTP Trigger
输入我们function的名字,我这里叫HandleMessage,有一点需要注意,Authorization level需要选择”Anonymous”,然后点击Create Function
完成后就可以看到我们有了HandleMessage这个函数。
输入我们的outgoing webhook代码。
#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”
进入”Apps”页面,在右下方,点击 “Create an outgoing webhook”,你有可能看不到这个选项,如果看不到,你需要用管理员账号按照下面的步骤到office365后台进行设置
使用你的Office365管理员账号登入”https://portal.office.com”,点击”Admin”菜单
在左侧找到”Teams”菜单
然后找到 “Teams app”,点击”Permission policies”,点击你所在policy组,我这里是默认的”Global (Org-wide default)”
确保Custom apps是Allow all apps
再到Setup policies,确保 “Upload custom apps”是打开的状态
回到Teams,刷新页面,或者重新登入,现在你应该可以看到 “Create an outgoing webhook”的连接了,点击它。
在弹出的页面里输入你的webhook名字,和URL。
我这里使用名字”OutgoingWebhookTest”,URL是https://outgoing-webhook.azurewebsites.net/api/HandleMessage
。这个URL就是我们前面创建的azure function的URL,加上function的名字。
{azure function url}/api/{http-triggered function name}
创建完后进入一个channel,at这个webhook,我这里是 @outgoingWebhookTest
后面跟上你想发给这个webhook的文字。
发送后,等几秒钟后,你就可以收到我们function发回来的回复了。
如果你点开Azure Function的log,可以实时的看到我们function被teams调用的记录
使用Azure Function开发的好处是代码简单,不需要ngrok之类的工具,而且当你webhook只是用来自己测试玩玩,基本是免费的,这也是Azure serverless的一大优势!
使用AzureFunction开发最简单的Teams Outgoing Webhook相关推荐
- 用AzureFunction开发最简单的Teams Bot
之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook,收到一些反馈,建议我介绍一下如果在azure function上开发teams bot,那这篇文章 ...
- 使用dotnet template快速开发Microsoft Teams Outgoing Web Hook
在上一篇文章中,我们一步步从无到有在Microsoft Teams中开发了一个简单的Outgoing Webhook,并和我们本地的Web API应用程序产生交互,总结起来的步骤大概如下: 导航到&q ...
- Microsoft Teams的Outgoing Webhook开发入门
Microsoft Teams的应用程序有几种形式: Tabs Bots Connectors Messaging extensions Activity feed integrations Outg ...
- 如何创建Teams的Outgoing webhook
上一篇文章讲了如何从VS Code种deploy azure function版本的Teams Outgoing Webhook到azure上去. 这篇文章就简单测试一下我们发布好的Azure Fun ...
- 【HTML5游戏开发】简单的《找不同汉字版》,来考考你的眼力吧
一,准备工作 本次游戏开发需要用到lufylegend.js开源游戏引擎,版本我用的是1.5.2(现在最新的版本是1.6.0). 引擎下载的位置:http://lufylegend.googlecod ...
- 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单
圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单 // // CircleCore.h // Quartz // // Created by 仙人掌 on ...
- SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流...
SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...
- 主流WEB开发语言简单对比(转)
主流WEB开发语言简单对比 原文链接:http://www.uml.org.cn/site/201401091.asp 随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...
- 记事本写python怎么运行-利用Python开发实现简单的记事本
前言 本文的操作环境:ubuntu,Python2.7,采用的是Pycharm进行代码编辑,个人很喜欢它的代码自动补齐功能. 示例图 如上图,我们可以看到这个记事本主要分为三个模块:文件,编辑和关于, ...
最新文章
- mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
- 电气接线+线号管正确方向=电工接线好习惯!你有吗?
- python+OpenCV图像处理(十一)图像轮廓检测
- java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言
- 十五、Python第十五课——测试代码
- 荣耀x10max能不能升级为鸿蒙,荣耀X10 Max即将亮相:容量很“放肆” 身材却很“克制”...
- Ansible(四)ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用
- L1-026. I Love GPLT-PAT团体程序设计天梯赛GPLT
- JS隐形数据类型转换注意事项
- ui unity 图片高亮_Unity5 UI图片变灰处理(UGUI)(二)
- ad中装配图如何导出_AD的PDF文件如何进行输出,你都掌握了?
- RS-485通讯协议
- android xutils3 注解,xUtils3使用简介
- html二级菜单:DIV+CSS制作二级菜单(横排二级下拉菜单)以及二级菜单出现错位怎么解决
- 为知笔记docker搭建
- C#通过ToLower()方法将字符串转换成小写的代码
- PB调用C#开发的控制台应用——实现WORD文档按页转存JPG图片
- beeline连接失败 No current connection
- Linux期末复习笔记(太原理工大学)
- Spring框架文档(二 )
热门文章
- 汇编程序基本原理知识笔记
- 今天除夕,给您拜年了!
- word2010添加b5纸张大小_纸张幅面规格尺寸你了解吗?
- mysql 时间chuo格式化_Mysql时间戳与时间格式转换问题汇总
- 广西2021高考成绩位次查询,2020年广西高考一分一段表及高考位次成绩排名查询(理科+文科)...
- Android 第三课 Activity的生命周期
- 微信公众号无需二次登录_您无需两次解决问题-您需要一个设计系统
- 2021年7月 虾皮、货拉拉、有赞等面经总结
- web前端常用代码于面试等资源
- IDEA svn 菜单不见了,解决方法