Ignore Slack在一个房间里编辑,但不是直接编辑到机器人

Jus*_*ris 6 javascript node.js slack botkit

我有一个使用botkit运行的机器人.我想发出一条警告信息,当你直接与机器人交谈时,编辑的消息会被忽略,所以我正在做:

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

机器人在一个有许多人的房间里,这样那些人就可以私下"访问"机器人.

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

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

Mac*_*ada 3

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

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

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