使用此 Webhook 模板构建 Slack Bot
Source: Dev.to

模板简介
你知道有一个针对 Codehooks.io 的极简 Slack webhook 模板吗?它让构建 Slack 集成变得异常简单。它的优势包括:
- 约 90 行代码 – 没有冗余,易于理解
- 默认安全 – 内置 HMAC SHA‑256 签名验证
- 可直接投产 – 处理 URL 验证、签名校验以及时间攻击防护
- 无服务器 – 无需管理服务器,自动弹性伸缩
入门指南
coho create myapp --template webhook-slack-minimal
cd myapp
npm install
coho deploy
就这么简单。三条命令,你的 webhook 已经上线。
开箱即用的功能
模板已经为你处理了所有繁琐的安全细节:
// 自动签名验证
function verifySlackSignature(body, signature, timestamp) {
// 拒绝超过 5 分钟的请求
// 使用计时安全比较
// 验证 HMAC SHA-256 签名
}
// Slack 设置时的 URL 验证
if (body.type === 'url_verification') {
return res.json({ challenge: body.challenge });
}
// 你的机器人逻辑从这里开始
if (event.type === 'message' && !event.bot_id && event.text) {
console.log('Message:', event.text);
// 做点酷炫的事
}
只需添加 SLACK_SIGNING_SECRET 环境变量,指向你的 webhook URL,Slack 就会开始向你推送事件。
实用案例
事件响应机器人
当有人在 #alerts 频道输入 @bot incident 时,自动创建工单并通知值班工程师。解析消息、提取严重程度,并启动你的事件管理工作流。可与 PagerDuty、Jira 或内部工具集成。
if (event.text.includes('incident')) {
// 解析事件细节
// 在系统中创建工单
// 呼叫值班工程师
// 将确认信息回传到频道
}
代码审查提醒机器人
监控 #engineering 频道,提醒开发者待审的代码审查。当有人提及 PR 链接时,机器人会跟踪并每日提醒,直到 PR 合并。可与 GitHub/GitLab API 集成以检查 PR 状态。
if (event.text.includes('github.com') && event.text.includes('/pull/')) {
// 提取 PR URL
// 通过 GitHub API 检查 PR 状态
// 为审查者安排提醒
// 合并后更新团队
}
知识库助手
创建一个智能助手,通过搜索内部文档回答常见问题。团队成员可以问 @bot how do I deploy?,机器人会即时返回带有相关文档链接的答案。
if (event.text.includes('@bot')) {
const query = extractQuery(event.text);
// 搜索你的知识库
// 格式化相关结果
// 回传带有帮助链接的消息
}
为什么这很重要
大多数 Slack 机器人教程都会让你在身份验证流程、webhook 验证逻辑和安全最佳实践之间苦苦挣扎。这个模板用约 90 行代码提供了完整的基础设施,让你可以专注于编写实际的机器人逻辑。
Codehooks.io 平台负责部署、扩展、环境变量和日志记录。你只需编写 JavaScript 并部署即可。
后续步骤
模板本身极简——旨在被扩展。以下是一些思路:
- 安装
@slack/web-api以向 Slack 发送消息 - 添加斜杠命令实现交互式工作流
- 连接数据库、API 或 AI 服务
- 处理表情、提及或其他事件类型
前往 GitHub 查看模板并立即开始构建你的 Slack 机器人吧!