Closed sasha00123 closed 4 years ago
Без пробелов вконтакте не рассматривает сообщение '/command@BotUsername' как текст с упоминанием. Поэтому бот и не может вырезать это. Потому что это действительно не упоминание. Некоторые команды могут содержать упоминания других пользователей, поэтому вырезать всё после '@' - плохой вариант, да и бот может работать с командами и аргументами, которые содержат символ '@'.
Для телеграмма этот функционал не реализован, хотя было бы неплохо. Но и там ситуация с упоминания будет аналогичная.
Не похоже, чтобы в поведении, приведённым в пример, было что-то не так. Всё правильно. Особенно это понятно из-за того, что если бот получает только сообщения с упоминаниями, он не будет получать сообщения из примера. Да и вроде случайно такое написать не получится - чтобы появился список с вариантами упоминания, надо ставить проблема (для мобильных клиентов и браузера)
В Telegram бот даже при включенном Group Privacy получает уведомления о команде ему. В других библиотеках, которые я использовал, данная фича работает корректно.
Во ВКонтакте это может быть полезно если нескольким ботам в беседе открыт доступ ко всем сообщениям.
Есть примеры? Боты всегда получают сообщения, в которых их тэгают, я это и написал. Но в сообщение /command@BotUsername
нет тэга бота. В сообщении /command @BotUsername
тэг есть, и это будет работать. Никто ведь не будет вручную писать тэг бота полностью. А меню с вариантами тэгов не появится в случае с /command@BotUsername
, поэтому случайно так не написать. Ни с телефона, ни с браузерной версии
Соглашусь, в ВК такой функционал не особо удобен.
А вот в Telegram, когда несколько ботов с одинаковыми командами, он автоматически предлагает использовать подобный синтаксис.
Вот, к примеру, реализация из python-telegram-bot:
Действительно. Когда буду добавлять функционал с вырезанием упоминания в телеграмм - учту этот момент 👌
Commands like /command@BotUsername don't work as expected.
Example code:
Expected Behavior
/command => Works!!! /command@BotUsername => Works!!!
Actual Behavior
/command => Works!!! /command@BotUsername => Doesn't work :-(
Possible Solution
Strip anything after @ in commands.
Steps to Reproduce (for bugs)
Context
This feature is quite useful if there're multiple bots in one chat.
Your Environment