2016-03-20 4 views
1

У меня есть простой слабинский бот, который может отвечать на сообщения, начинающиеся с определенной строки. Я бы предпочел, чтобы бот отвечал только на сообщения, в которых упоминается бот. Я использую slackclient и получать сообщения с помощью:slack bot отвечает на сообщения с упоминанием

new_evts = sc.rtm_read() 

Я могу видеть мою client_id в сообщении, но поиск сообщений жал не кажется, правильный подход.

u'text': u'<@U0TP3B7HU>: test message' 

Должен быть более слабый способ обработки сообщений с упоминаниями. Что мне не хватает в API Slack?

ответ

0

Основываясь на the Slack documentation for the message event и взглянув на реальные события (как и у вас есть), похоже, нет лучшего способа обнаружения упоминаний в сообщении. Я считаю, что подход поиска текста сообщения является единственным вариантом. Например, that's what botkit does.

0

Я нашел библиотеку, которая обеспечивает способ ответа на упоминания. Библиотека This предоставляет механизм для обозначения функции, которая будет вызываться, когда сообщение направлено на конкретного пользователя.

@respond_to('github', re.IGNORECASE) def github(): ...

Я действительно не нравится регулярное выражение кода и того, чтобы искать каждый отвечал. Это более простой способ обработки ответов на DM или @references в сообщениях.

Смежные вопросы