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

使用Node.js Bolt API开发Slack机器人:斜杠命令频道不可见问题

问题:Slack Bolt机器人斜杠命令响应无法在频道中显示

我使用Node.js的Bolt API开发Slack机器人,发送斜杠命令后,机器人能成功接收并响应,但该命令的响应不会在频道中对所有成员显示。我了解到需要添加{"response_type": "in_channel"}参数,但不清楚如何修改代码实现这一点。以下是我的slack.js代码:

const { App, LogLevel } = require("@slack/bolt");
app.command("/ask", async ({ command, ack, say, respond }) => {

    console.log("command ", command)
    console.log("ack ", ack)

    await ack();
    await say(`Hi <@${command.user_name}>`)

    
})

(async () => {
    const port = 8000
    await app.start(port);
    console.log(`⚡️ Slack Bolt app is running on port ${port}!`);
   })()

解决方案

要让斜杠命令的响应在频道中对所有成员可见,只需在发送响应时指定response_type: 'in_channel'参数,你可以通过两种方式实现:

方式一:修改say方法调用

将原本的say调用改为传入配置对象,明确指定响应类型:

await ack();
// 修改后的say调用
await say({
  text: `Hi <@${command.user_name}>`,
  response_type: 'in_channel'
});

方式二:使用respond方法

如果需要基于命令自带的response_url发送响应,同样可以添加该参数:

await ack();
await respond({
  text: `Hi <@${command.user_name}>`,
  response_type: 'in_channel'
});

注意:ack()仅用于确认Slack已收到你的命令请求,它不会生成频道可见的消息,真正的频道响应需要由say或respond方法生成。


内容的提问来源于stack exchange,提问作者Dummy Cron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:48:25