建立在 node.js 上的 Direct Messaging 自定义 slack 机器人

问题描述

我使用 node.js 中的 slack/bots api 构建了一个 slack 机器人:https://slack.dev/bolt-js/tutorial/getting-started

目前,当我在为使用 webhooks 设置的频道中输入 <bot> help 时,它工作正常。我正在尝试使用 app.event('app_mention',...) 方法在机器人的 DM 中运行这些相同的命令,但它不起作用。就像该消息由于某种原因没有在机器人的 DM 中注册,但它在公共频道中有效。下面的代码片段:

app.event('app_mention',async ({ event,client}) => {
    console.log(event);
    const text = event.text;
    const parentMessageId = event.ts;
    const eventChannel = event.channel;
    if (text.includes("help")) {
        console.log(event);
        try {
            await client.chat.postMessage({
                channel: eventChannel,text: helpMessage,thread_ts: parentMessageId
            });
        } catch (err) {
            console.error(err);
        }

我也应该正确设置权限。我基本上拥有可以为机器人添加的所有权限

解决方法

app_mention api 的文档特别提到此事件不适用于 DM。

直接消息对话中发送到您的应用的消息不是 通过 app_mention 分派,无论该应用是否被明确提及或 否则。订阅 message.im 事件以接收定向消息 在直接消息对话中发送给您的机器人用户。

在这里查看:https://api.slack.com/events/app_mention