微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决建立在 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。