Skip to content

Slack Incoming Webhook 怎么配置?从零到发消息,我踩过的那些坑

Slack Incoming Webhook 配置示意图

一、引言:为什么我要写这篇?

作为一个天天和 API 打交道的开发者,我原本以为配置 Slack Webhook 是件极其简单的事——不就是创建个应用、拿个 URL、发个 POST 请求嘛,能有多难?

结果我懵了整整一下午。

“Add New Webhook”按钮是灰色的,点不动。

安装应用时报错“没有要安装的机器人用户”。

授权完了回到 Incoming Webhooks 页面,URL 还是没出现。

每一步都踩坑,每一步都让人抓狂。

后来我翻遍了官方文档和社区帖子,才把这套流程彻底捋顺。这篇文章就是把我的踩坑经历和最终摸索出来的正确流程,一次性讲清楚。如果你也在配置 Slack Incoming Webhook,希望这篇能帮你把那一下午的时间省下来。

二、前置准备

开始之前,先确认两件事:

  1. 有一个 Slack 工作区(Workspace) —— 就是你团队正在用的那个 Slack。
  2. 有创建应用的权限 —— 如果你不是工作区的 Admin,可能无法创建应用,需要联系管理员帮忙开通。

如果这两项都 OK,那我们正式开始。

三、第一步:创建 Slack 应用

  1. 访问 Slack API 网站,点击页面中的 “Create New App”

  2. 在弹出的窗口中选择 “From scratch”(从头开始)。

  3. 填写应用信息:

  • App Name:给你的应用起个名字,比如 “message-bot”。
  • Pick a workspace to develop your app in:选择你要安装到哪个工作区。

  1. 点击 “Create App”,应用就创建好了。

💡 这一步通常不会出什么问题,照着点就行了。

四、第二步:添加 Scope(关键!)

Slack 的权限模型是基于 Scope(权限范围) 的,你的应用能做什么、不能做什么,都在这里配置。

4.1 进入 OAuth & Permissions 页面

在左侧菜单的 “LEGACY” 分类下,找到并点击 “OAuth & Permissions”

4.2 添加 OAuth 权限

滚动到页面中间的 “Scopes” 区域,点击 “添加一项 OAuth 权限”(Add an OAuth Scope)。

需要添加 两个权限

Scope作用
chat:write以机器人身份发送消息
chat:write:public在公共频道发送消息(即使机器人未被 @ 提及)

⚠️ 这两个缺一不可。少了 chat:write,应用根本没有发送消息的权限;少了 chat:write:public,消息只能发给私聊或机器人被 @ 提及的频道。

五、第三步:Install OAuth Tokens

添加完 Scope 之后,需要把应用安装到工作区,生成真正的 OAuth Token。

在 OAuth & Permissions 页面,向上滚动找到 “OAuth Tokens” 区域,点击 “Install to fishfinal”

💡 注意:fishfinal 是我工作区的名称,你这里的按钮文字会是 “Install to [你的工作区名称]”

点击后会跳转到 Slack 的授权页面,这里会列出应用请求的权限清单,确认后点击 “允许”

授权完成后会自动跳转回 OAuth & Permissions 页面,此时 “OAuth Tokens” 区域会生成一个 “Bot User OAuth Token”

✅ 这个 Token 就是你的应用身份凭证,后续发消息时要用到。请妥善保管,不要泄露

六、第四步:激活 Incoming Webhook

这是最容易被忽略的一步——即使应用安装好了,Incoming Webhook 功能默认是关闭的,必须手动开启。

6.1 进入 Incoming Webhooks 页面

左侧菜单点击 “Incoming Webhook”,默认状态下,“Activate Incoming Webhooks” 的开关是 “off”

6.2 开启开关

点击开关将其调整为 “on”

这时页面顶部会出现一条警告信息:

⚠️ You’ve changed the permission scopes your app uses. Please reinstall your app for these changes to take effect.

你更改了应用使用的权限范围。请重新安装应用以使这些更改生效。

6.3 重新安装应用

点击警告信息中的 “reinstall your app” 链接,Slack 会再次跳转到授权页面。

这次多了一个关键选项——选择 Webhook 消息要发送到的默认频道

选择一个频道(比如 #general#random),点击 “允许”

6.4 获取 Webhook URL

重新安装完成后,页面会自动跳转回 Incoming Webhooks 页面。此时在 “Webhook URLs for Your Workspace” 区域,你会看到:

  • 一个 curl 示例命令,可以直接用来测试
  • 一个 Webhook URL,格式类似:https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

6.5 测试一下

复制页面中的 curl 命令,在终端里执行:

bash
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, world!"}' https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx

如果一切正常,你会看到 Slack 频道里弹出这条消息:

🎉 恭喜你,配置成功了!

最后,点击 Webhook URL 旁边的 “Copy” 按钮,把它保存到你的代码里。

七、常见问题 FAQ

问题原因解决方案
“Add New Webhook”按钮是灰色的应用未安装或 Scope 配置不完整先去 OAuth & Permissions 添加 chat:writechat:write:public,然后点击 Install
安装时报“没有要安装的机器人用户”应用没有 Bot 用户在 App Home 中创建 Bot 用户,然后重新安装
开启 Incoming Webhook 后仍没有 URL修改 Scope 后没有重新安装点击警告中的 “reinstall your app”,并选择默认频道
发消息报错 invalid_tokennot_allowedToken 没有对应权限确认 Scopes 包含 chat:writechat:write:public,并重新安装
消息发到了错误的频道安装时选择的默认频道不对重新走一遍 reinstall 流程,选择正确的频道

八、总结

配置 Slack Incoming Webhook 的完整流程可以总结为四步:

1. 创建应用(Create App)

2. 添加 Scope(chat:write + chat:write:public)

3. 安装应用(Install to Workspace)

4. 激活 Incoming Webhook + 重新安装(Reinstall)

5. 拿到 Webhook URL

最容易踩的三个坑:

  1. 漏掉 Scope —— 必须加 chat:writechat:write:public,少一个都不行。
  2. 忘了激活开关 —— Incoming Webhook 默认是关闭的,必须手动打开。
  3. 改了配置没重新安装 —— Scope 变化后必须 reinstall,否则不会生效。

希望这篇文章能帮你把配置 Slack Webhook 的时间从一下午缩短到 5 分钟。

最后更新2026/06/23 09:38
如果你觉得这篇文章有帮助,或者想聊聊技术、工作,欢迎通过下面方式联系我:
contact fishfinal