问题描述
我使用 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 事件以接收定向消息 在直接消息对话中发送给您的机器人用户。