Отправка сообщения при старте бота на python в aiogram
Всем привет. Каки образом можно при старте бота отправить сообщению юзеру? Использую библиотеку aiogram. Мне нужно что бы при перезапуске бота, отправлялось сообщения юзерам которые им уже пользуются. Что-то на подобии "Бот перезапущен, пропишете /start"
Ответы (1 шт):
Если речь идет про сам сервер, который обрабатывает входящие сообщения, то вам поможет аргумент on_startup у метода executor.start_polling.
# ... код вашего бота
async def on_startup(_):
user_should_be_notified = 123123123123 # Наверное это должны быть вы сами? Как всезнающий админ:)
await bot.send_message(user_should_be_notified, 'Бот запущен')
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
Еще, вдруг, как вариант, метод executor.start:
# ... код вашего бота
async def on_startup():
user_should_be_notified = 123123123123
await bot.send_message(user_should_be_notified, 'Бот запущен')
if __name__ == '__main__':
executor.start(dp, on_startup())
executor.start_polling(dp, skip_updates=True)
Если, как всплыло в комментариях, надо отправлять уведомление всем юзерам, которые ботом пользовались, то единственный вариант, насколько я хорошо знаю - запоминать айдишники всех пользователей при первом обращении... Куда-нибудь, где они не потеряются после перезапуска. Потом в цикле по этому сохраненному массиву айдишников вызвать bot.send_message.
А еще, если пользователей будет много, то стоит выставить задержку между итерациями, чтобы отправлялось не более 20 сообщений в секунду. Как в broadcast_example.