@Proxor1
Начинающий программист

Как получить user.id боту aiogram 2.23.1 через ответ на сообщение?

Мне нужно чтобы я отвечал на чьё то сообщение 661056aa71d2c917849255.png
Примерно так, и бот брал id человека на чьё сообщение я ответил и банил.
Искал в интернете, не нашёл ничего подобного, только через pyrogram, но я не понял как именно это реализовать, если можно через aiogram то напишите как, если как то по другому объясните или скиньте хороший гайд
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Из постановки задачи: тебе надо работать с сообщением, так?
Открываешь документацию и ищешь класс, описывающий сообщение. Подсказка: обычно такой класс называется Message.
Внимательно просматриваешь его свойства и методы, ищешь всё, что касается ответов (ключевые слова: reply, response и т.п.).
Находишь свойство reply_to_message. Читаешь:
reply_to_message: Message | None
Optional. For replies in the same chat and message thread, the original message. Note that the Message object in this field will not contain further reply_to_message fields even if it itself is a reply.

Тип данных (Message | None) и подсказка Optional говорят о том, что в этом поле может лежать либо None (очевидно, если сообщение не является ответом), либо ещё один объект Message (тогда это сообщение, на который был ответ).
Теперь как разобраться с автором сообщения. Аналогично ищем свойства и методы класса Message по ключевым словам user, author и т.п. Находим свойство from_user.
from_user: User | None
Optional. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.

Достаточно, чтобы понять, что в этом свойстве должен лежать объект, описывающий автора сообщения.

Теперь осталось собрать вместе логику работы бота:
  1. Бот получает уведомление о сообщении
  2. Бот проверяет, было ли сообщение отправлено в тот чат, где он должен работать (свойство chat)
  3. Бот проверяет, отправлено ли сообщение тобой (свойство from_user)
  4. Бот проверяет, является ли сообщение ответом (свойство reply_to_message)
  5. Бот получает оригинальное сообщение и извлекает его отправителя
  6. Бот банит этого отправителя

Как забанить пользователя - упражнение для читателя.
Учись искать и разбираться в документации, без этого навыка никуда.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Мне нужно чтобы я отвечал на чьё то сообщение
нет, тебе это не нужно, тебе нужно научиться читать доки, либо уметь гуглить, ну и перестать писать новых ботов на устаревшей версии aiogram
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы