Messenger API 和 Webhook 集成指南 - 机器人开发教程(2026)

开发者使用代码编辑器和webhook架构图创建聊天机器人

通过消息机器人自动发送通知,能让开发工作流更高效、更便捷。无论是构建完成、出现报错还是部署结束,你都能第一时间收到提醒。本文将带你了解如何在主流即时通讯平台上,通过 webhook 配置自动消息机器人。需要把 CI/CD 结果、服务器告警或任务完成状态通知给团队?这些集成方案都能轻松搞定。本文只介绍支持机器人功能的平台,部分以隐私为优先的加密通讯工具不支持自动化,相关内容会单独列出。

了解基于 Webhook 的机器人自动化

基于 webhook 的机器人原理很简单:你的应用向某个 URL 发送一个 HTTP POST 请求,消息平台随即将内容推送到指定的频道或用户。

这种方式适用于多种自动化场景:

  • 构建通知 - 构建成功或失败时发出告警,并附上错误详情
  • 部署更新 - 代码推送到预发布或生产环境时通知团队
  • 监控告警 - 发送服务器健康预警或宕机通知
  • 定时报告 - 定期推送每日指标或状态摘要

基本流程分三步:

  1. 在目标平台创建机器人或 webhook URL
  2. 配置你的自动化工具(CI/CD、监控系统或自定义脚本)发送 HTTP 请求
  3. 按照平台要求格式化消息 payload

选择合适的平台时,还需要考虑其安全特性。想深入了解各平台的安全性,可以参考我们的即时通讯平台终极指南(2026 版)

各平台机器人集成指南

以下是支持 webhook 机器人集成的各平台详细配置步骤。

Discord Webhook 机器人

How to setup different webhook bots in 2026 simple and easy

Discord 的 webhook 配置是所有平台中最简单的。发送基础消息无需创建机器人应用,也不需要身份验证令牌。

分步配置

  1. 打开服务器设置 - 右键点击服务器名称,选择"服务器设置"
  2. 进入集成页面 - 点击左侧栏中的"集成"
  3. 创建 Webhook - 点击"Webhooks",然后点击"新建 Webhook"
  4. 配置 Webhook - 为 webhook 命名(例如"Build Bot"),选择频道,可选择上传头像
  5. 复制 Webhook URL - 点击"复制 Webhook URL"并妥善保存

通过 Webhook 发送消息

curl -X POST -H "Content-Type: application/json" \
  -d '{"content": "✅ Build completed successfully!\n\nProject: MyApp\nBranch: main\nDuration: 3m 42s"}' \
  https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN

错误通知的富文本嵌入示例

curl -X POST -H "Content-Type: application/json" \
  -d '{
    "embeds": [{
      "title": "❌ Build Failed",
      "color": 15158332,
      "fields": [
        {"name": "Project", "value": "MyApp", "inline": true},
        {"name": "Branch", "value": "feature/login", "inline": true},
        {"name": "Error", "value": "```TypeError: Cannot read property of undefined```"}
      ],
      "timestamp": "2026-01-15T10:30:00.000Z"
    }]
  }' \
  YOUR_WEBHOOK_URL

官方文档: Discord Webhook 文档

Slack Webhook 机器人

How to setup different webhook bots in 2026 simple and easy

Slack 通过 Slack Apps 系统提供 Incoming Webhooks 功能,支持富文本消息格式和灵活的频道指定。

分步配置

  1. 创建 Slack App - 前往 api.slack.com/apps,点击"创建新应用"
  2. 选择创建方式 - 选择"从头开始",为应用命名(例如"CI/CD 通知")
  3. 启用 Incoming Webhooks - 在左侧栏进入"Incoming Webhooks"并开启开关
  4. 将 Webhook 添加到工作区 - 点击"向工作区添加新 Webhook"
  5. 选择频道 - 选择接收通知的频道,点击"允许"
  6. 复制 Webhook URL - 页面上会显示你的专属 webhook URL

通过 Webhook 发送消息

curl -X POST -H "Content-Type: application/json" \
  -d '{"text": "✅ Deployment to production completed successfully!"}' \
  https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXX

使用 Block Kit 发送详细通知

curl -X POST -H "Content-Type: application/json" \
  -d '{
    "blocks": [
      {
        "type": "header",
        "text": {"type": "plain_text", "text": "🚨 Build Failed"}
      },
      {
        "type": "section",
        "fields": [
          {"type": "mrkdwn", "text": "*Project:*\nMyApp"},
          {"type": "mrkdwn", "text": "*Branch:*\nmain"},
          {"type": "mrkdwn", "text": "*Error:*\n`Module not found`"}
        ]
      }
    ]
  }' \
  YOUR_WEBHOOK_URL

官方文档: Slack Incoming Webhooks 指南

Microsoft Teams Webhook 机器人

How to setup different webhook bots in 2026 simple and easy

Microsoft Teams 通过连接器系统支持 Incoming Webhooks,可向频道推送通知。

分步配置

  1. 打开频道设置 - 进入目标频道,点击频道名称旁的三点菜单(•••)
  2. 选择连接器 - 点击"连接器"(新版本中为"管理频道",然后点击"连接器")
  3. 找到 Incoming Webhook - 搜索"Incoming Webhook"并点击"配置"
  4. 命名 Webhook - 输入名称(例如"构建告警"),可选择上传图片
  5. 创建并复制 URL - 点击"创建",复制生成的 webhook URL

通过 Webhook 发送消息

curl -X POST -H "Content-Type: application/json" \
  -d '{"text": "✅ Build #1234 completed successfully on main branch"}' \
  YOUR_TEAMS_WEBHOOK_URL

使用 Adaptive Card 发送富文本通知

curl -X POST -H "Content-Type: application/json" \
  -d '{
    "type": "message",
    "attachments": [{
      "contentType": "application/vnd.microsoft.card.adaptive",
      "content": {
        "type": "AdaptiveCard",
        "version": "1.2",
        "body": [
          {"type": "TextBlock", "size": "Large", "weight": "Bolder", "text": "❌ Build Failed"},
          {"type": "FactSet", "facts": [
            {"title": "Project:", "value": "MyApp"},
            {"title": "Error:", "value": "Compilation failed"}
          ]}
        ]
      }
    }]
  }' \
  YOUR_TEAMS_WEBHOOK_URL

官方文档: Microsoft Teams Incoming Webhooks

Telegram 机器人

How to setup different webhook bots in 2026 simple and easy

Telegram 提供功能强大的 Bot API,可通过编程方式发送消息。与其他平台不同,你需要直接向 Telegram 的 API 发送请求,而不是使用 webhook URL。

分步配置

  1. 通过 BotFather 创建机器人 - 打开 Telegram,搜索 @BotFather
  2. 新建机器人 - 发送 /newbot 命令
  3. 为机器人命名 - 按提示设置显示名称和用户名(用户名必须以"bot"结尾)
  4. 保存 API 令牌 - BotFather 会返回类似 123456789:ABCdefGHIjklMNOpqrsTUVwxyz 的令牌
  5. 获取聊天 ID - 将机器人添加到群组或频道并发送一条消息,然后访问 https://api.telegram.org/bot<TOKEN>/getUpdates 查找聊天 ID

通过 Bot API 发送消息

curl -X POST \
  "https://api.telegram.org/bot/sendMessage" \
  -d "chat_id=" \
  -d "text=✅ Build completed successfully!%0A%0AProject: MyApp%0ABranch: main" \
  -d "parse_mode=HTML"

使用 HTML 发送格式化消息

curl -X POST \
  "https://api.telegram.org/bot/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "",
    "text": "❌ Build Failed\n\nProject: MyApp\nBranch: main\nError: Module not found",
    "parse_mode": "HTML"
  }'

官方文档: Telegram Bot API

Mattermost Webhook 机器人

How to setup different webhook bots in 2026 simple and easy

Mattermost 是 Slack 的开源替代品,具备完善的 webhook 支持,非常适合自托管团队协作场景。

分步配置

  1. 进入集成页面 - 点击汉堡菜单,然后点击"集成"
  2. 创建 Incoming Webhook - 选择"Incoming Webhooks",点击"添加 Incoming Webhook"
  3. 配置 Webhook - 设置标题、描述和默认频道
  4. 保存并复制 URL - 点击"保存",复制生成的 webhook URL

通过 Webhook 发送消息

curl -X POST -H "Content-Type: application/json" \
  -d '{"text": "✅ Build completed successfully!"}' \
  https://your-mattermost-server.com/hooks/YOUR_WEBHOOK_ID

富文本附件消息

curl -X POST -H "Content-Type: application/json" \
  -d '{
    "attachments": [{
      "fallback": "Build Failed",
      "color": "#FF0000",
      "title": "❌ Build Failed",
      "fields": [
        {"short": true, "title": "Project", "value": "MyApp"},
        {"short": true, "title": "Branch", "value": "main"},
        {"short": false, "title": "Error", "value": "```Module not found```"}
      ]
    }]
  }' \
  YOUR_WEBHOOK_URL

官方文档: Mattermost Incoming Webhooks

Matrix/Element 机器人

How to setup different webhook bots in 2026 simple and easy

Matrix 是一个去中心化通信的开放协议,Element 是其最流行的客户端。集成机器人需要使用 Matrix Client-Server API。

分步配置

  1. 创建机器人账号 - 在你的 homeserver 或 matrix.org 上为机器人注册一个新的 Matrix 账号
  2. 获取访问令牌 - 登录后在 Element 中找到访问令牌:设置 - 帮助与关于 - 高级 - 访问令牌
  3. 获取房间 ID - 让机器人加入目标房间,然后在房间设置 - 高级中找到房间 ID
  4. 邀请机器人进入房间 - 确保机器人账号已加入将要发送消息的房间

通过 Matrix API 发送消息

curl -X PUT \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"msgtype": "m.text", "body": "✅ Build completed successfully!"}' \
  "https://matrix.org/_matrix/client/r0/rooms/YOUR_ROOM_ID/send/m.room.message/$(date +%s)"

使用 HTML 发送格式化消息

curl -X PUT \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "msgtype": "m.text",
    "body": "Build Failed\nProject: MyApp\nError: Module not found",
    "format": "org.matrix.custom.html",
    "formatted_body": "

❌ Build Failed

Project: MyApp
Error: Module not found

" }' \ "https://matrix.org/_matrix/client/r0/rooms/YOUR_ROOM_ID/send/m.room.message/$(date +%s)"

提示: 如果想简化 Matrix 机器人的开发,可以尝试使用 matrix-nio(Python)或 matrix-bot-sdk(JavaScript)等库。

官方文档: Matrix Client-Server API 规范

WhatsApp Business 机器人

How to setup different webhook bots in 2026 simple and easy

WhatsApp 提供 Business API 用于自动化消息发送,但需要完成企业认证,配置流程比其他平台更复杂。

分步配置

  1. 创建 Meta 企业账号 - 访问 business.facebook.com 创建企业账号
  2. 配置 WhatsApp Business - 前往 developers.facebook.com,创建应用并添加 WhatsApp 产品
  3. 配置电话号码 - 为机器人添加电话号码(开发阶段可使用测试号码)
  4. 获取访问令牌 - 在应用控制台中生成永久访问令牌
  5. 完成企业认证 - 上线前需完成企业认证流程

通过 Cloud API 发送消息

curl -X POST \
  "https://graph.facebook.com/v17.0/YOUR_PHONE_NUMBER_ID/messages" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "RECIPIENT_PHONE_NUMBER",
    "type": "text",
    "text": {"body": "✅ Build completed successfully!"}
  }'

注意: WhatsApp 要求在主动发起会话时必须使用消息模板。只有在用户互动后的 24 小时内,才能发送自由格式的消息。如需发送自动化通知,请提前创建消息模板并等待审核通过。

官方文档: WhatsApp Cloud API 文档

Facebook Messenger 机器人

How to setup different webhook bots in 2026 simple and easy

Facebook Messenger 机器人需要一个 Facebook 应用和主页,消息通过 Send API 发送。

分步配置

  1. 创建 Facebook 应用 - 前往 developers.facebook.com,新建应用(选择"企业"类型)
  2. 添加 Messenger 产品 - 在应用控制台中点击"添加产品",选择 Messenger
  3. 关联 Facebook 主页 - 将 Facebook 主页与应用关联(如无主页请先创建)
  4. 生成主页访问令牌 - 在 Messenger 设置中为主页生成令牌
  5. 获取 PSID - 用户需先向你的主页发送消息,从 webhook 事件中获取其页面作用域 ID(PSID)

通过 Send API 发送消息

curl -X POST \
  "https://graph.facebook.com/v17.0/me/messages" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient": {"id": "USER_PSID"},
    "message": {"text": "✅ Build completed successfully!"},
    "access_token": "YOUR_PAGE_ACCESS_TOKEN"
  }'

注意: Facebook Messenger 对自动化消息有严格限制。机器人只能在用户互动后的 24 小时内发送推广类消息。如需在此时间窗口之外发送通知,需申请特定消息标签或使用一次性通知功能。

官方文档: Facebook Messenger 平台文档

不支持机器人的通讯平台

以下通讯平台以隐私和安全为优先,这意味着基于 webhook 的机器人集成要么无法实现,要么不具备实用价值:

  • Signal - 没有官方机器人 API。Signal 专注于端对端加密,刻意避免可能降低安全性的自动化功能。
  • Session - 去中心化通讯平台,没有机器人基础设施。其洋葱路由设计使自动化消息发送不具可行性。
  • Briar - 专为活动人士和记者设计的点对点通讯工具,没有服务器基础设施,因此不支持 webhook。
  • Wire - 提供部分企业级 API 功能,但没有用于自动化通知的简单 webhook 系统。
  • Wickr - 面向企业市场,没有公开的机器人 API。自动化集成需要 Wickr Enterprise 版本并进行定制开发。
  • SimpleX - 其架构设计不使用用户标识符,这使得机器人集成与其架构存在根本性的不兼容。
  • Threema - 为企业提供 Threema Gateway,但这是需要签订合同的付费服务,并非简单的 webhook 配置。
  • Viber - 提供机器人 API,但需要企业账号审核,且主要面向客服场景,不适合开发者通知需求。
  • LINE - 提供 Messaging API,但需要企业账号认证,对于简单的通知场景来说配置过于复杂。
  • 微信 - 提供公众号 API,但需要中国大陆企业资质和政府审批。

如果你倾向于使用上述平台进行安全通信,可以考虑将其与支持自动化的平台搭配使用。你也可以阅读我们关于如何真正保护私信安全的指南。

实战示例

以下是一个完整的 Node.js 示例,可同时向多个平台发送构建通知:

const axios = require('axios');

const notifiers = {
  discord: async (message, webhookUrl) => {
    await axios.post(webhookUrl, { content: message });
  },

  slack: async (message, webhookUrl) => {
    await axios.post(webhookUrl, { text: message });
  },

  telegram: async (message, token, chatId) => {
    await axios.post(`https://api.telegram.org/bot${token}/sendMessage`, {
      chat_id: chatId,
      text: message,
      parse_mode: 'HTML'
    });
  },

  teams: async (message, webhookUrl) => {
    await axios.post(webhookUrl, { text: message });
  }
};

async function notifyBuildResult(success, project, branch, error = null) {
  const emoji = success ? '✅' : '❌';
  const status = success ? 'succeeded' : 'failed';
  let message = `${emoji} Build ${status}\n\nProject: ${project}\nBranch: ${branch}`;
  if (error) message += `\nError: ${error}`;

  const notifications = [
    notifiers.discord(message, process.env.DISCORD_WEBHOOK),
    notifiers.slack(message, process.env.SLACK_WEBHOOK),
    notifiers.telegram(message, process.env.TELEGRAM_TOKEN, process.env.TELEGRAM_CHAT_ID),
    notifiers.teams(message, process.env.TEAMS_WEBHOOK)
  ];

  await Promise.allSettled(notifications);
}

// 在 CI/CD 流水线中使用
notifyBuildResult(false, 'MyApp', 'main', 'Module not found: @utils/helper');

核心要点:

  • Discord、Slack 和 Mattermost 配置最简单 - 创建 webhook URL 即可直接使用
  • Telegram 需要机器人令牌和聊天 ID,但可靠性强,消息格式支持丰富
  • Microsoft Teams 通过 Adaptive Card 实现富文本通知
  • Matrix/Element 配置步骤较多,但非常适合自托管环境
  • WhatsApp 和 Facebook Messenger 有更严格的规则和消息发送政策
  • 以隐私为设计核心的通讯平台出于安全考虑,刻意不提供机器人 API

总结

在各大即时通讯平台上配置基于 webhook 的机器人通知,能为你的开发工作流带来强大的自动化能力。Discord 和 Slack 上手最快,只需一个简单的 webhook URL 即可。Telegram 稳定可靠,配置也不复杂。对于企业团队,Microsoft Teams 和 Mattermost 能与现有工具无缝集成。Matrix 则提供自托管、注重隐私的选项,并支持完整的 API 访问。

建议从一个平台开始,先跑通通知流程,再按需扩展到更多频道。上面的代码示例可以直接使用。你的下一步就是在选定平台上创建一个 webhook,发送第一条自动化消息 - 整个过程不超过 10 分钟。

常见问题

Discord 是最简单的。在频道设置中创建 webhook 后,你会立刻得到一个可以直接 POST 消息的 URL,无需令牌、无需创建应用、无需认证。Slack 也比较简单,但需要先创建一个 Slack App。

不能。Signal、Session、Briar 和 SimpleX 等注重隐私的通讯平台没有机器人 API,这是有意为之的设计选择,目的是保护用户隐私。这些平台专注于端对端加密和最小化数据收集,与自动化消息发送的需求存在根本冲突。如需发送通知,建议使用支持自动化的平台,同时保留私密对话使用安全通讯工具。

需要,请像对待密码一样保护 webhook URL。任何持有该 URL 的人都可以向你的频道发送消息。请将其存储在环境变量中,绝对不要提交到版本控制系统,一旦泄露应立即重新生成。部分平台(如 Slack)支持在需要时创建新的 webhook URL。

Webhook 是单向的:你向一个 URL 发送消息,它就会出现在频道中。机器人 API 是双向的:你既可以发送消息,也可以接收并回复用户消息。对于构建告警或监控等简单通知场景,webhook 已经足够。如果需要机器人响应用户指令,则需要完整的机器人 API,并在你的服务器上配置 webhook 端点。

大多数平台都有频率限制。Discord 每个 webhook 每分钟最多发送 30 条消息,Slack 也有类似限制。建议使用带指数退避策略的消息队列来处理重试。如果消息量较大,可以将多个事件合并为一条消息,或在平台支持的情况下使用批量 API。