忽略 Room 中的 Slack 编辑,但不直接对机器人进行编辑
Ignore Slack edits in a Room but not directly to the bot
我有一个使用 botkit 的机器人 运行。我想发出一条警告消息,当您直接与机器人对话时,已编辑的消息将被忽略,所以我正在做:
controller.on('message_changed', function(bot, message) {
bot.reply(message, ":warning: Your edit was ignored.");
});
机器人在一个有很多人的房间里,这样这些人就可以私下 "access" 访问机器人。
问题:当有人在房间里编辑消息时,机器人会发送警告。避免这种情况的最佳方法是什么?
我希望避免将房间 ID 硬编码到机器人不应回复的房间中,因为我们可能在其他房间中有机器人。
您可以通过查看频道是否以 D 开头来检查消息频道以确定它是否是 "direct_message"。如果它以 D 开头,则这是一条正在编辑的直接消息。像这样的东西应该有用。
controller.on('message_changed', function(bot, message) {
if (message.channel.match(/^D/)) {
bot.reply(message, ":warning: Your edit was ignored.");
}
});
此外,如果您希望它在用户直接向机器人发送消息的聊天室中工作,您可以检查消息文本以查看它是否以 @yourBotsName 开头
我有一个使用 botkit 的机器人 运行。我想发出一条警告消息,当您直接与机器人对话时,已编辑的消息将被忽略,所以我正在做:
controller.on('message_changed', function(bot, message) {
bot.reply(message, ":warning: Your edit was ignored.");
});
机器人在一个有很多人的房间里,这样这些人就可以私下 "access" 访问机器人。
问题:当有人在房间里编辑消息时,机器人会发送警告。避免这种情况的最佳方法是什么?
我希望避免将房间 ID 硬编码到机器人不应回复的房间中,因为我们可能在其他房间中有机器人。
您可以通过查看频道是否以 D 开头来检查消息频道以确定它是否是 "direct_message"。如果它以 D 开头,则这是一条正在编辑的直接消息。像这样的东西应该有用。
controller.on('message_changed', function(bot, message) {
if (message.channel.match(/^D/)) {
bot.reply(message, ":warning: Your edit was ignored.");
}
});
此外,如果您希望它在用户直接向机器人发送消息的聊天室中工作,您可以检查消息文本以查看它是否以 @yourBotsName 开头