Почему Телеграм бот не реагирует на сообщения другого бота в группе?
Задача: в группу бот (к которому доступа нет) постит сообщения.
Другой бот считывает их и отправляет информацию по api.
На сообщениях пользователя всё работает, а при отправке ботом - мой бот не реагирует. Как это исправить?
Почему мой бот не видит сообщения от других ботов?
Боты, разговаривающие друг с другом, потенциально могут застрять в нежелательных циклах. Чтобы этого избежать, мы решили, что боты не смогут видеть сообщения от других ботов независимо от режима.
Плохо, что нельзя так делать, хотя у меня с начало заработало, бот видел сообщения другого бота и реагировал и потом перестал.
А если сделать обращение, бот обращается к другому боту, в сообщении юзернейм бота к которому идет обращение.
Значит решений пока нет, хотя если слать не от бота сообщения, а от юзербота, от реального аккаунта, его использовать как бот, тогда ботфазер будет видеть сообщения.
Пробовал еще такой метод, не сработал для группы - для канала работает.
На самом деле, начиная с 21 ноября 2016 года боты в Telegram могут «общаться» между собой через канал. Дело в том, что начиная с этой даты, боты смогли видеть сообщения из каналов, любые, даже от других ботов.
Нижеследующий пример на питоне демонстрирует такое взаимодействие — взаимные приветствия с интервалом не чаще раза в секунду.
# Разрешаем получение обновлений из каналов
bot.get_updates(allowed_updates=["channel_post"])
# Логин бота для вывода
name = bot.get_me().username
@bot.channel_post_handler()
def hello(msg):
bot.reply_to(msg, "Привет, я @" + name)
time.sleep(1)
bot.polling()
Прежде чем начать выполнять опросы следует вызвать метод getUpdates с параметром allowed_updates, разрешающим получение обновлений в каналах. Сами обновления нам пока не важны — с ними пусть разберётся библиотека pyTelegramBotAPI.