javascript - 忽略 Room 中的 Slack 编辑,但不直接对机器人进行编辑

标签 javascript node.js slack botkit

我有一个使用 botkit 运行的机器人。我想给出一条警告消息,当您直接与机器人对话时,已编辑的消息将被忽略,所以我正在这样做:

controller.on('message_changed', function(bot, message) {
    bot.reply(message, ":warning: Your edit was ignored.");
});

机器人在一个有很多人的房间里,这样这些人就可以私下“访问”机器人。

问题:当有人在房间中编辑消息时,机器人会发送警告。避免这种情况的最佳方法是什么?

我希望避免将房间 ID 硬编码到机器人不应该回复的房间,因为我们可能在其他房间有机器人。

最佳答案

您可以通过查看 channel 是否以 D 开头来检查消息 channel 以确定它是否是“direct_message”。如果它以 D 开头,则这是一条正在编辑的直接消息。这样的事情应该有效。

controller.on('message_changed', function(bot, message) {
    if (message.channel.match(/^D/)) {
        bot.reply(message, ":warning: Your edit was ignored.");
    }
});

此外,如果您希望它在用户直接向机器人发送消息的聊天室中工作,您可以检查消息文本以查看它是否以 @yourBotsName

开头

关于javascript - 忽略 Room 中的 Slack 编辑,但不直接对机器人进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043588/

相关文章:

javascript - 如何将 Javascript 反向引用传递给键或函数?

javascript - JSON.parse 出现问题,不知道为什么没有解析所有内容

node.js - 构建依赖于另一个规则的 bazel 规则

node.js - 发布请求 Axios : Network error

facebook - 为什么我的机器人响应 MethodNotAllowed 错误?

javascript - 我怎么能中止 JavaScript Promise?

Javascript - if(变量)检查 'undefined' 失败

javascript - 由于某种原因无法让 div 重新出现?

Python slackclient oauth.access 调用返回 'invalid_code' 错误

超过 2 列的松弛 block