创建传入 Webhooks

重要

Microsoft 365 连接器 (以前称为 Office 365 连接器) 即将弃用,并且即将阻止创建新的 Microsoft 365 连接器。 有关计划以及工作流应用如何提供更灵活、更安全的体验的详细信息,请参阅 停用 Microsoft Teams 中的 Microsoft 365 连接器

如何在 Teams 中创建 Webhook

如果已生成Office 365连接器

  • 创建 Power Automate 连接器:Power Automate 增强了 Teams 中广泛使用的工作流应用。 它是以编程方式将数据传入和传出 Teams 的可缩放且安全的方法。 如果采用此方法,则可以创建工作流模板,用于将产品中的警报发布到 Teams 频道。 此方法简化了用户采用新方法。 有关详细信息,请参阅 面向企业开发人员、ISV 和合作伙伴的 Power Automate。

  • 更新 Teams 应用:可以增强当前 Teams 应用。 例如,可以让用户基于系统中的触发器事件设置主动消息。 有关详细信息,请参阅 机器人如何通过主动消息发布到通道。

已知问题

  • 工作流应用不能作为流机器人在专用频道中发布。 但是,它可以代表用户发布。
  • 工作流仅支持自适应卡片。 它不支持Office 365连接器使用的较旧消息卡格式。 从 10 月中旬开始,支持在工作流中使用消息卡格式。 有关详细信息,请参阅如何将连接器消息卡格式转换为自适应卡片。
  • 工作流不提供 DataDog 和 Jenkins 等第三方连接器。
  • 只能在默认环境中创建工作流。

限制

工作流仅链接到特定用户 (称为工作流) 所有者,而不是 Teams 团队或频道。 如果没有分配共同所有者,如果没有所有者,工作流可能会成为孤立流。 为了保持流自动化业务流程的连续性,管理员可以添加一个或多个共同所有者,并授予他们对工作流的完全控制权限。 他们还可以为连接添加身份验证(如果有),并在已禁用流时启用流。 有关详细信息,请参阅 管理孤立流

传入 Webhook 允许外部应用程序Microsoft Teams 频道中共享内容。 Webhook 用作跟踪和通知的工具。 Webhook 提供唯一的 URL,用于以卡格式发送带有消息的 JSON 有效负载。 卡片是用户界面容器,包含与单个文章相关的内容和操作。 可以在以下功能中使用卡片:

  • 机器人
  • 消息扩展
  • 连接器

注意

  • 消息大小限制为 28 KB。 当大小超过 28 KB 时,将收到错误。 有关详细信息,请参阅 Microsoft Teams 的限制和规范
  • 如果在一秒内发出的请求超过四个,则客户端连接会受到限制,直到窗口刷新的持续时间为固定速率。 使用指数退避的重试逻辑可以缓解请求在一秒内超过限制的情况的速率限制。 若要避免达到速率限制,请参阅 HTTP 429 响应

传入 Webhook 的主要功能

下表提供了传入 Webhook 的功能和说明:

功能 Description
使用传入 webhook 的自适应卡 可以通过传入 Webhook 发送自适应卡片。 有关详细信息,请参阅使用传入 Webhook 发送自适应卡片
可操作消息传递支持 所有 Microsoft 365 组(包括 Teams)都支持可操作消息卡。 如果通过卡片发送消息,则必须使用可操作邮件卡格式。 有关详细信息,请参阅旧版可操作消息卡参考消息卡操场
独立 HTTPS 消息传递支持 卡片提供清晰且一致的信息。 任何可以发送 HTTPS POST 请求的工具或框架可以通过传入 Webhook 发送消息到 Teams。
Markdown 支持 在可操作消息传递卡片中的所有文本字段都支持基础 Markdown。 请勿在卡片中使用 HTML 标记。 HTML 会遭忽略并被视为纯文本。
作用域配置 传入 Webhook 的范围在通道级别进行配置。
保护资源定义 消息的格式设置为 JSON 有效负载。 此声明性消息传送结构阻止插入恶意代码。

注意

  • Teams 机器人、消息扩展、传入 Webhook 和机器人框架支持自适应卡片。 自适应卡片是一种开放的跨卡平台框架,用于 Windows、Android 和 iOS 等所有平台。 Teams 连接器 不支持自适应卡片。 但是,可以创建一个将自适应卡片发布到 Teams 频道的
  • 有关卡片和 Webhook 的详细信息,请参阅自适应卡片和传入 Webhook

创建传入 Webhook

若要将传入 Webhook 添加到 Teams 频道,请执行以下步骤:

  1. 在“新建 Teams 客户端”中,选择“ Teams ”并导航到要在其中添加传入 Webhook 的频道。

  2. 选择通道名称右侧的“ 更多选项 •••”。

  3. 选择 “管理频道”。

    屏幕截图显示 Teams 2.1 的“更多选项”下的“管理频道”选项。

    对于不是频道管理员的成员,“ 管理频道 ”选项位于频道右上角的 “打开频道详细信息 ”选项下。

    非管理员用户的“管理频道”选项的屏幕截图。

  4. 选择“编辑”。

    屏幕截图显示用于添加传入 Webhook 的“连接器”选项下的“编辑”选项。

  5. 搜索传入 Webhook 并选择添加

    屏幕截图显示用于添加传入 Webhook 的“添加”选项。

    此时将显示“传入 Webhook”对话框。

  6. 选择“添加”。

    屏幕截图显示“传入 Webhook”对话框中的“添加”选项。

    注意

    如果已添加传入 Webhook,则将显示 “配置” 选项。 选择“ 配置 ”以创建传入 Webhook。

  7. 提供 Webhook 的名称,并在必要时上传图像。

  8. 选择“创建”。

    屏幕截图显示要填充的名称和图像字段以创建 Webhook。

  9. 复制并保存对话框中存在的唯一 Webhook URL。 URL 映射到频道,你可以使用它将信息发送到 Teams。

  10. 选择“完成”。 Webhook 现已在 Teams 频道中提供。

    屏幕截图显示唯一的 Webhook URL。

以下图形表示形式提供了创建传入 Webhook 的步骤:

图形表示形式显示了创建传入 Webhook 的步骤。

重要

可以使用 Teams 工具包(而不是传入 Webhook)生成通知机器人 Teams 应用。 它们的执行方式类似,但通知机器人具有更多功能。 有关详细信息,请参阅 使用 JavaScript 生成通知机器人传入 Webhook 通知示例

可以通过传入 Webhook 或连接器创建和发送可操作的消息,以便Microsoft 365 组。 有关详细信息,请参阅 创建和发送消息

注意

在 Teams 中,选择“设置”>“成员权限”>“允许成员创建、更新、删除连接器,以便任何团队成员添加、修改或删除连接器。

示例

示例代码参考

var adaptiveCardJson = @"{
  ""type"": ""message"",
  ""attachments"": [
    {
      ""contentType"": ""application/vnd.microsoft.card.adaptive"",
      ""content"": {
        ""type"": ""AdaptiveCard"",
        ""body"": [
          {
            ""type"": ""TextBlock"",
            ""text"": ""Message Text""
          }
        ],
        ""$schema"": ""http://adaptivecards.io/schemas/adaptive-card.json"",
        ""version"": ""1.0""
      }
    }
  ]
}";

var webhookUrl = "https://xxxxx.webhook.office.com/xxxxxxxxx";

var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var content = new StringContent(adaptiveCardJson, System.Text.Encoding.UTF8, "application/json");
var response = await client.PostAsync(webhookUrl, content);

删除传入 Webhook

若要从 Teams 频道中删除传入 Webhook,请执行以下步骤:

  1. 在“新建 Teams”客户端中,选择“Teams”图标 并导航到要删除传入 Webhook 的频道。

  2. 选择通道名称右侧的“ 更多选项 •••”。

  3. 选择 “管理频道”。

    屏幕截图显示“更多选项”下的“管理频道”选项。

  4. 选择“编辑”。

    屏幕截图显示“连接器”选项下的“编辑”选项。

  5. 在左窗格中,选择“ 已配置”。

  6. 在“传入 Webhook”下,选择“ 1 已配置”。

    显示如何配置以查看连接器列表的屏幕截图。

  7. 选择“管理”。

    屏幕截图显示如何管理要删除的连接器。

  8. 选择“ 删除”。

    选择“删除”

    此时会显示“删除配置”对话框。

  9. 选中所需的复选框。

  10. 选择“ 删除”。

    屏幕截图显示如何从 Teams 频道中删除传入 Webhook。

Webhook 现已从 Teams 频道中删除。

代码示例

示例名称 Description .NET Node.js
传入 Webhook 此示例演示如何实现和使用传入 Webhook。 View View

另请参阅