Как бот может получить ID сообщения на которое ответил пользователь (Телеграм aiogram)

Суть вопроса в том, что в группе с темами всегда сообщение отправляется как ответ на первое сообщение системы типа "Тема 22 создана". Я ботом хочу контролировать одну конкретную тему. Я так понимаю, мне нужно узнать ID этого первого сообщения при создании темы, чтоб понимать, что пользователь написал именно в эту тему. Немного поправлю вопрос. Я то знаю ID темы, но не понимаю как бот может получить это ID чтоб дальше с ним работать?

telegram_id = message.chat.id этим кодом я получаю ID чата без учёта темы, результат типа -10023456789 а мне нжно чтоб бот видел в какой теме написал пользователь типа -10023456789_4

Для написания бота использую Python312 и библиотеку aiogram 3.14 Следующий код мне дает ID группы и имя пользователя который написал в группу любое сообщение Как узнать, что он написал именно в нужную тему?

@dp.message()
async def command_start_handler(message: Message) -> None:
          telegram_id = message.chat.id
          username = message.from_user.username
          await message.answer('Hello')

Ответы (1 шт):

Автор решения: Алексей Рыженко

Вроде нашёл как вычислить тему, в которую пишет пользователь:

@dp.message()
 async def command_start_handler(message: Message) -> None:
    telegram_id = message.from_user.id # id пользователя
    ch_id = message.chat.id            # id группы
    username = message.from_user.username # имя пользователя
    n_thema = message.reply_to_message.message_id # id темы куда пришло сообщение
    await message.answer(f'Hello, {n_thema}') # визуальный тест переменной
    await add_to_database(telegram_id, username, ch_id) # занесение в базу данных нужные параметры

В итоге имеем и id группы, и id темы:

message_thread_id вместо message_id тоже даёт номер темы.

Разница в этом:

  • message_thread_id возвращает id темы в любом случае
  • message_id возвращает id темы, если обычная отправка сообщения, а если ответ на какое-то сообщение, то возвращает id того сообщения, на которое ответ.
→ Ссылка