首页 > 解决方案 > 如果消息仅以标签开头,如何使 slackbot 回复

问题描述

所以我正在用 Nodejs 编写一个很酷的 slackbot。但我希望机器人仅在命令以标签开头后跟机器人名称的情况下回答,例如:

@joe 向我打招呼

目前我有这样的事情:

 if (msg.toLowerCase() == "greet me")
        bot.postMessageToChannel('general',"wazzup");

问题是它只有在消息完全是“问候我”时才会回复。我不是在寻找 include() 函数。我只希望机器人在标记并跟随特定命令时回答。谢谢

标签: javascriptnode.jsslackslack-api

解决方案


这个问题的一个非常优雅的解决方案是使用事件 API并订阅app_mention事件。然后,您的机器人将仅在频道中明确提及他时才会收到消息事件,例如@my_bot hi.

此外,您可能还想订阅该message.im事件,这样您就可以对来自用户的直接消息做出反应。


推荐阅读