Как заставить slackbot отвечать, если сообщение начинается только с тега - PullRequest
0 голосов
/ 18 октября 2018

так что я заканчиваю программирование классного слэббота с Nodejs.Но я бы хотел, чтобы бот отвечал, только если команда начинается с тега, за которым следует имя бота, например:

@ joe greet me

На данный момент у меня есть что-то вроде этого:

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

Проблема в том, что он отвечает только в том случае, если сообщение точно «приветствует меня».Я не ищу функцию include ().Я просто хочу, чтобы бот отвечал, когда на него ставили метки и следовали определенной команде.Спасибо

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Очень элегантное решение этой проблемы - использовать API событий и подписаться на событие app_mention.Тогда ваш бот будет получать сообщения о событиях, только когда он явно упоминается в канале, например, @my_bot hi.

. В дополнение к этому вы также можете подписаться на событие message.im,так что вы можете реагировать на прямые сообщения от пользователей.

0 голосов
/ 18 октября 2018

Вы пробовали регулярные выражения?возможно что-то вроде

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

для захвата сообщения в первой группе

...