如果消息仅以标签开头,如何使slackbot回复

时间:2018-10-18 16:39:23

标签: javascript node.js slack

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

@joe问候我

此刻我有这样的东西:

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

问题在于,仅当邮件正好“向我打招呼”时才会答复。我不是在寻找include()函数。我只想让漫游器在被标记时回答,然后跟随特定的命令。谢谢

2 个答案:

答案 0 :(得分:1)

针对此问题的一种非常优雅的解决方案是使用Events API并订阅app_mention事件。然后,您的漫游器只会在频道中明确提及他时(例如, @my_bot hi

除了您之外,您还可能希望订阅message.im事件,因此您可以对来自用户的直接消息做出反应。

答案 1 :(得分:0)

您尝试过正则表达式吗?也许像

var command = msg.toLowerCase().match(/^@joe (.*)/)[1] 

捕获第一组中的邮件