Как отправить сообщения юзерам при старте бота Aiogram
Допустим, создал я бота. Хочу, чтобы обособленно от готовых хендлеров, бот отправлял всем пользователем подготовленное сообщение. Допускаю, что это можно сделать, во время перезапуска бота Пробовал этот способ, ничего не вышло и ничего не понял:
from aiogram import Bot
token = 'token'
bot = Bot(token)
async def gg():
while True:
await bot.send_message(id, msg)
asyncio.sleep(10)
asyncio.run(gg()) ```
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Вам нужна бд с юзер айди для того чтобы сделать это. У aiogram есть встроенные способы сделать что-то при старте бота и при завершении это on_startup и on_shutdown.
Вот примерный код как это должно работать.
from aiogram import Bot, Dispatcher, executor
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import asyncio
from data import config
bot = Bot(token=config.BOT_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
async def on_startup(_):
arr = [] # абстрактный массив с юзер_айди
for user_id in arr:
await bot.send_message(chat_id=user_id, text="Бот запущен!")
await asyncio.sleep(1)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)