基于 node.js 构建的直接消息自定义 slack 机器人
Direct Messaging custom slack bot built on node.js
我使用 node.js 中的 slack/bots api 构建了一个 slack 机器人:https://slack.dev/bolt-js/tutorial/getting-started
目前,当我在为使用 webhook 设置的频道中键入 <bot> help
时,它工作正常。我正在尝试使用 app.event('app_mention',...) 方法在 DM 中使用机器人 运行 那些相同的命令,但它不起作用。它就像消息由于某种原因没有在机器人的 DM 中注册,但它在 public 频道中工作。下面的代码片段:
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。
Messages sent to your app in direct message conversations are not
dispatched via app_mention, whether the app is explicitly mentioned or
otherwise. Subscribe to message.im events to receive messages directed
to your bot user in direct message conversations.
我使用 node.js 中的 slack/bots api 构建了一个 slack 机器人:https://slack.dev/bolt-js/tutorial/getting-started
目前,当我在为使用 webhook 设置的频道中键入 <bot> help
时,它工作正常。我正在尝试使用 app.event('app_mention',...) 方法在 DM 中使用机器人 运行 那些相同的命令,但它不起作用。它就像消息由于某种原因没有在机器人的 DM 中注册,但它在 public 频道中工作。下面的代码片段:
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。
Messages sent to your app in direct message conversations are not dispatched via app_mention, whether the app is explicitly mentioned or otherwise. Subscribe to message.im events to receive messages directed to your bot user in direct message conversations.