You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:57:14