生成传出 Webhook
重要
所有云平台中以前称为 Office 365) 连接器的现有Microsoft 365 (即将弃用,并且即将阻止创建新的 Microsoft 365 连接器。 有关计划以及工作流应用如何提供更灵活、更安全的体验的详细信息,请参阅 停用 Microsoft Teams 中的 Microsoft 365 连接器。
Webhook 可帮助Microsoft Teams 与外部应用集成。 在 Teams 中,传出 Webhook 充当机器人,并使用 @mention 在频道中搜索消息。 传出 Webhook 允许用户将消息发送到 Web 服务,而无需通过 Microsoft Bot Framework 执行创建机器人的整个过程。 传出 Webhook 将数据从 Teams 发布到能够接受 JSON 有效负载的任何服务。
传出 Webhook 的主要功能
- 将通知发送到任何外部 Web 服务。
- 使用富文本消息(包括卡片和图像)进行响应。
- 在公共频道中接收消息,而不是在个人或专用范围内接收消息。
- 将 HTTP POST 发送到 Web 服务并获取响应。
注意
传出 Webhook 无法访问任何其他 API,例如检索团队中的名单或频道列表。
本分步指南可帮助你在 Teams 中创建传出 Webhook。 你将看到以下输出:
先决条件
确保安装以下工具并设置开发环境:
安装 | 用于使用... | |
---|---|---|
Microsoft Teams | Microsoft Teams,在一个位置通过聊天、会议和通话应用与你合作的每个人协作。 | |
Visual Studio 2022 | 可以在 Visual Studio 2022 中安装企业版,并安装 ASP.NET 和 Web 开发工作负载。 使用最新版本。 | |
开发隧道 | Teams 应用功能 (对话机器人、消息扩展和传入 Webhook) 需要入站连接。 隧道将开发系统连接到 Teams。 开发隧道是一种功能强大的工具,用于安全地将 localhost 打开到 Internet 并控制谁有权访问。 Visual Studio 2022 版本 17.7.0 或更高版本中提供了开发隧道。 或者 还可以使用 ngrok 作为隧道,将开发系统连接到 Teams。 对于仅包含选项卡的应用,这不是必需的。 此包使用 npm devDependencies ) 安装在项目目录 (中。 |
注意
下载 ngrok 后,注册并安装 authtoken。
设置本地环境
选择“ 代码”。
在下拉菜单中,选择“ 使用 GitHub Desktop 打开”。
选择“ 克隆”。
创建传出 Webhook
创建隧道
打开 Visual Studio。
选择 “创建新项目”。
在搜索框中,输入 “ASP.NET”。 在搜索结果中,选择“ ASP.NET 核心 Web 应用”。
选择 下一步。
输入 “项目名称 ”,然后选择“ 下一步”。
选择“创建”。
此时会显示概述窗口。
在调试下拉列表中,选择“ 开发隧道 (无活动隧道) >创建隧道...”。
将出现一个弹出窗口。
在弹出窗口中更新以下详细信息:
- 帐户:输入Microsoft或 GitHub 帐户。
- 名称:输入隧道的名称。
- 隧道类型:从下拉列表中选择“ 临时”。
- 访问:从下拉列表中选择“ 公共”。
选择“确定”。
此时会显示一个弹出窗口,显示已成功创建开发隧道。
选择“确定”。
可以在调试下拉列表中找到已创建的隧道,如下所示:
选择 F5 以在调试模式下运行应用程序。
如果出现 “安全警告 ”对话框,请选择“ 是”。
将出现一个弹出窗口。
选择 继续。
开发隧道主页将在新的浏览器窗口中打开,开发隧道现在处于活动状态。
转到 Visual Studio,选择“ 查看 > 输出”。
在 “输出 控制台”下拉菜单中,选择“ 开发隧道”。
输出控制台显示开发隧道 URL。
转到 “Teams ”,然后从左窗格中选择“ Teams ”。
转到所需的团队,选择“ (•••) 的更多选项”,然后选择“ 管理团队”。
从导航栏中选择“ 应用 ”选项卡。
从窗口右下角选择“ 创建传出 Webhook ”。
输入以下详细信息:
名称:选项卡中的 @mention Webhook 标题。
回调 URL:从 ngrok 生成的 URL,该 URL 接受 JSON 有效负载并接收来自 Teams 的 POST 请求。 若要使用
api/Sample
或api/authenticatedSample
,请执行以下操作:对于 api 示例,请复制并粘贴
dev tunnel
或ngrok
URL,并将其追加到/api/sample
。对于 api authenticatedSample,请复制并粘贴
dev tunnel
或ngrok
URL,并将其追加到/authenticatedSample?id=contoso
。
说明:显示在个人资料卡和团队级应用仪表板中的详细字符串。
个人资料图片 (可选) :Webhook 的应用图标。
选择“创建”。 传出 Webhook 将添加到当前团队的频道。
此时会显示一个
Hash-based Message Authentication Code (HMAC)
对话框。 可以使用 AuthProvider.cs 文件中的安全令牌对 Teams 与任何指定的外部服务之间的调用进行身份验证。注意
仅当 URL 有效且服务器和客户端身份验证令牌相等时,传出 Webhook 才对团队的用户可用。 例如,HMAC 握手。
生成并运行服务
打开 Visual Studio。
转到 “文件>打开>项目/解决方案...”。
在 csharp 文件夹中,选择 “WebhookSampleBot.sln 文件”。
转到 AuthProvider.cs 文件。 更新
contoso
并M365x70471008
添加 HMAC。按 F5 运行项目。
如果出现以下对话框,请选择“是”:
网页显示本地主机信息。
在 Teams 中与应用交互
转到 “Teams ”,然后从左窗格中选择“ Teams ”。
转到 常规>新建对话。
若要在通道中调用传出 Webhook, @mention 传出 Webhook 名称,然后选择“ 发送 ”图标。
注意
你可以使用传出 Webhook 将自适应卡片、主图卡片和短信作为附件发送。
会议聊天显示一条新消息。
完成挑战
你想出了这样的东西吗?
恭喜!
你已完成本教程以开始使用传出 Webhook 应用!
你有关于此部分的问题? 如果有,请向我们提供反馈,以便我们对此部分作出改进。