← Все вопросы

Как отправить разным пользователям сообщение по их id из бота?

Задан 27 месяцев назад266 просмотров1 ответ
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 и сохраняют именно при первом сообщении пользователя.

Ваш ответ

Войдите, чтобы ответить на вопрос.