上篇文章讲了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相关推荐

  1. 用AzureFunction开发最简单的Teams Bot

    之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook,收到一些反馈,建议我介绍一下如果在azure function上开发teams bot,那这篇文章 ...

  2. 使用dotnet template快速开发Microsoft Teams Outgoing Web Hook

    在上一篇文章中,我们一步步从无到有在Microsoft Teams中开发了一个简单的Outgoing Webhook,并和我们本地的Web API应用程序产生交互,总结起来的步骤大概如下: 导航到&q ...

  3. Microsoft Teams的Outgoing Webhook开发入门

    Microsoft Teams的应用程序有几种形式: Tabs Bots Connectors Messaging extensions Activity feed integrations Outg ...

  4. 如何创建Teams的Outgoing webhook

    上一篇文章讲了如何从VS Code种deploy azure function版本的Teams Outgoing Webhook到azure上去. 这篇文章就简单测试一下我们发布好的Azure Fun ...

  5. 【HTML5游戏开发】简单的《找不同汉字版》,来考考你的眼力吧

    一,准备工作 本次游戏开发需要用到lufylegend.js开源游戏引擎,版本我用的是1.5.2(现在最新的版本是1.6.0). 引擎下载的位置:http://lufylegend.googlecod ...

  6. 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单

    圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单 // //  CircleCore.h //  Quartz // //  Created by 仙人掌 on ...

  7. SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流...

    SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...

  8. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

  9. 记事本写python怎么运行-利用Python开发实现简单的记事本

    前言 本文的操作环境:ubuntu,Python2.7,采用的是Pycharm进行代码编辑,个人很喜欢它的代码自动补齐功能. 示例图 如上图,我们可以看到这个记事本主要分为三个模块:文件,编辑和关于, ...

最新文章

  1. mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
  2. 电气接线+线号管正确方向=电工接线好习惯!你有吗?
  3. python+OpenCV图像处理(十一)图像轮廓检测
  4. java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言
  5. 十五、Python第十五课——测试代码
  6. 荣耀x10max能不能升级为鸿蒙,荣耀X10 Max即将亮相:容量很“放肆” 身材却很“克制”...
  7. Ansible(四)ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用
  8. L1-026. I Love GPLT-PAT团体程序设计天梯赛GPLT
  9. JS隐形数据类型转换注意事项
  10. ui unity 图片高亮_Unity5 UI图片变灰处理(UGUI)(二)
  11. ad中装配图如何导出_AD的PDF文件如何进行输出,你都掌握了?
  12. RS-485通讯协议
  13. android xutils3 注解,xUtils3使用简介
  14. html二级菜单:DIV+CSS制作二级菜单(横排二级下拉菜单)以及二级菜单出现错位怎么解决
  15. 为知笔记docker搭建
  16. C#通过ToLower()方法将字符串转换成小写的代码
  17. PB调用C#开发的控制台应用——实现WORD文档按页转存JPG图片
  18. beeline连接失败 No current connection
  19. Linux期末复习笔记(太原理工大学)
  20. Spring框架文档(二 )

热门文章

  1. 汇编程序基本原理知识笔记
  2. 今天除夕,给您拜年了!
  3. word2010添加b5纸张大小_纸张幅面规格尺寸你了解吗?
  4. mysql 时间chuo格式化_Mysql时间戳与时间格式转换问题汇总
  5. 广西2021高考成绩位次查询,2020年广西高考一分一段表及高考位次成绩排名查询(理科+文科)...
  6. Android 第三课 Activity的生命周期
  7. 微信公众号无需二次登录_您无需两次解决问题-您需要一个设计系统
  8. 2021年7月 虾皮、货拉拉、有赞等面经总结
  9. web前端常用代码于面试等资源
  10. IDEA svn 菜单不见了,解决方法