接入 Slack
AstrBot v3.5.16 及之后,支持接入 Slack 消息平台。
创建 AstrBot Slack 平台适配器
进入消息平台,点击新增适配器,找到 Slack 并点击进入 Slack 配置页。
在弹出的配置对话框中点击 启用
。
在 Slack 创建 App
Slack 支持两种接入方式:Webhook
与 Socket
。如果您没有公网服务器并且消息业务量的规模较小,我们建议您使用 socket
方式。如果您有公网服务器(或者有一定的技术背景,了解如何设置 Tunnel,如 Cloudflare Tunnel),可以选择 webhook
方式。socket
方式部署相对简单。
- 创建 Slack 账号和一个工作区(Workspace)。
- 前往 应用后台,点击「Create New App」->「From Scratch」,输入
应用名称
和要添加到的工作区,然后点击「Create App」。 - (仅 Webhook 需要)获取
Signing Secret
,在左边栏 Basic Information 页下,找到 App Credentials 的Signing Secret
,点击 Show 并且复制到平台适配器配置的 signing_secret 处。
- 在左边栏 Basic Information 页下,找到 App-Level Tokens,点击 「Generate Token and Scopes」。Token Name 任意输入,点击 Add Scope,选择
connections:write
,然后点击 「Generate」,点击 Copy 将结果复制到 AstrBot 配置页的 app_token 处。
在左边栏 OAuth & Permissions 页下,在 Bot Token Scopes 下方添加如下权限:
- channels:history
- channels:read
- channels:write.invites
- chat:write
- chat:write.customize
- chat:write.public
- files:read
- files:write
- groups:history
- groups:read
- groups:write
- im:history
- im:read
- im:write
- reactions:read
- reactions:write
- users:read
在左边栏 OAuth & Permissions 页下,在 Oauth Token 处点击
Install to xxx
(xxx 是您工作区的名字)。然后复制生成的 Bot User OAuth Token 到平台适配器配置的 bot_token 处。(仅 Socket 需要)在左边栏 Socket Mode 页下,开启 Enable Socket Mode。
启动平台适配器
现在,配置已经完成。如果您使用的是 Socket 模式,那么直接点击配置的右下角的保存按钮即可。如果您使用的是 Webhook 模式,还可以按照您的需要来设置配置中的 Slack Webhook Host、Slack Webhook Port 和 Slack Webhook Path。一般来说使用默认值已经足够。
开启事件接收
新建平台适配器成功后,返回到 Slack 设置,在左边栏 Event Subscriptions 页下,点击 Enable Events 启用事件接收。
如果您使用的是 Webhook 模式,请在在出现的 Request URL
输入框中输入 https://您的域名/astrbot-slack-webhook/callback
。
TIP
Webhook 模式下,您需要先在 DNS 服务商处设置好域名,然后使用反向代理软件将上一步中填写的 Slack Webhook Port 反向代理到您设置的域名。或者您可以使用 Cloudflare Tunnel。具体教程请参考网络资源,本教程不赘述。
启用后,在下方的 Subscribe to bot events 处,点击 Add Bot User Event,添加如下事件:
- channel_created
- channel_deleted
- channel_left
- member_joined_channel
- member_left_channel
- message.channels
- message.groups
- message.im
- reaction_added
- reaction_removed
- team_join
测试成功性
进入您刚刚添加的 Slack 工作区,进入需要用到 Bot 的频道,然后 @ 您刚刚创建的应用。然后点击 Slackbot 随后发送的消息中的 添加 按钮来添加到工作区中。然后,@ 应用,输入 /help
,如果能够成功回复,说明测试成功。
如果有疑问,请提交 Issue。