创建传入 Webhooks

传入 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

另请参阅