← Все вопросы
Как отправить разным пользователям сообщение по их id из бота?
5
Я знаю, как ответить на сообщение через message.answer. Но как боту самому написать конкретному пользователю, когда он мне ничего не писал прямо сейчас — например, отправить напоминание по сохранённому id?
1 ответ
9
✓ Принятый ответ — помог автору
Для отправки по конкретному chat_id используется bot.send_message:
await bot.send_message(chat_id=123456789, text="Не забудь про домашку!")
Где взять этот id? Когда человек пишет боту, сохрани message.from_user.id (например в свой JSON/список). Потом по нему можно слать:
@dp.message(Command("remindall"))
async def remind_all(message: Message):
for uid in saved_user_ids:
await bot.send_message(uid, "Напоминание для всех!")
Важная оговорка: бот не может написать первым человеку, который ни разу не запускал бота — Telegram это запрещает (защита от спама). То есть слать можно только тем, кто уже хоть раз нажал «Старт» у твоего бота. Поэтому id и сохраняют именно при первом сообщении пользователя.
Ваш ответ
Войдите, чтобы ответить на вопрос.