Разработка Телеграм-бота для форумов
Форум — это особая группа, разделённая на несколько веток (тем, топиков). Если ваш бот работает в группах, будет полезно убедиться, что он правильно обрабатывает форумы.
С технической точки зрения
Форум — это просто группа с особым пользовательским интерфейсом. Вы даже можете открыть форум в классическом виде чата, используя меню форума в официальных приложениях.
Давайте обсудим, как технически работают темы:
- Когда создается тема, появляется системное сообщение: "Создана тема".
- Все ответы на это сообщение попадают в эту тему.
- ID темы точно такой же, как ID системного сообщения.
- Общая тема (#general) — это место, куда попадают все остальные сообщения, и ее ID равен 1.
Использование
Если ваш бот работает в группах, вам следует учесть, как он будет вести себя, когда группа является форумом. Например, когда пользователь отправляет команду, бот должен ответить в той же теме, иначе ответ появится в Общей теме.
@dp.message()
async def handle_message(message: types.Message):
if message.chat.type == ChatType.SUPERGROUP and message.message_thread_id:
await message.answer('Это форум!')
else:
await message.answer('Это не форум')
Управление ветками
Боты, как и юзеры, могут открывать, изменять и закрывать ветки. В зависимости от настроек форума для этого может понадобиться специальное право админа.