如何使用Bolt JavaScript库为Slack应用创建消息快捷方式并捕获消息详情
使用Bolt JavaScript库实现Slack消息快捷方式并捕获消息详情
1. 在Slack开发者控制台配置消息快捷方式
- 登录Slack开发者平台,进入你的应用管理页面
- 找到「Interactivity & Shortcuts」选项,开启Interactivity功能
- 点击「Create New Shortcut」,选择「Message Shortcut」类型
- 设置快捷方式的名称、描述,指定可使用的频道范围,完成后保存,记录下生成的
callback_id
2. 初始化Bolt项目
- 先安装依赖:
npm install @slack/bolt - 创建并初始化Bolt应用实例:
const { App } = require('@slack/bolt'); const app = new App({ token: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET, // 若使用Socket Mode(无需暴露公网端口),需添加以下配置 socketMode: true, appToken: process.env.SLACK_APP_TOKEN });
3. 监听快捷方式触发事件并捕获消息详情
通过app.shortcut方法监听指定callback_id的消息快捷方式,从触发事件中提取消息数据:
app.shortcut('你的消息快捷方式callback_id', async ({ shortcut, ack, client }) => { // 必须先确认接收请求,避免Slack判定超时 await ack(); // 从shortcut对象中获取完整消息详情 const targetMessage = shortcut.message; console.log('捕获到的消息信息:', { 消息文本: targetMessage.text, 发送者ID: targetMessage.user, 消息时间戳: targetMessage.ts, 所在频道ID: shortcut.channel.id }); // 可选:给触发用户发送临时反馈消息 await client.chat.postEphemeral({ channel: shortcut.channel.id, user: shortcut.user.id, text: `已获取消息内容:${targetMessage.text}` }); });
4. 启动应用
添加启动代码并运行:
(async () => { await app.start(process.env.PORT || 3000); console.log('Slack应用已成功启动'); })();
关键说明
shortcut.message包含了触发快捷方式的那条消息的所有原始数据,可根据需求提取文本、附件、发送者等信息- 务必调用
ack()方法确认请求,否则Slack会在3秒后重试或判定请求失败 - 若使用Socket Mode,需在Slack控制台的「Socket Mode」选项中开启功能,并生成对应的App Token
内容的提问来源于stack exchange,提问作者Harshith Gowda
相关产品推荐
相关产品推荐

