Как отправить сообщение в тему (форум, topic) в чате, Telethon?
Всем добра!
Приходит event в:
@client.on(events.NewMessage())
async def new_message(event: events):
pass
В чате есть три топика: "Один", "Два" и "#Главный". Допустим, сообщение написано в топике "Один", как мне отправить ответ в него же?
Если использовать
event.respond("Сообщение")
..., то оно попадает в "#Главный". Да и вообще сообщение event.respond() из любой темы отправляет в главный.
Смотрел содержимое event, не нашёл там данных о теме чата. Прошу помощи :)
Ответы (2 шт):
UPD Нашёл, вот так:
group_name = -100XXXXXXXXX
topic_id = YYYY
await client.send_message(group_name, message, reply_to=topic_id)
topic_id можно узнать, скопировав урл любого сообщения в самом топике (ПКМ на пост -> копировать URL сообщения): https://t.me/c/XXXXXXXXX/YYYY/ZZZZ, где: XXXXXXXXX - chat_id YYYY - topic_id ZZZZ - message_id
=-=-=-=-=--=-=
@client.on(events.NewMessage())
async def handler(event):
await event.reply("Сообщение")
Ответит в том же топике, в котором было написано сообщение. Но вот как без ответа послать в определённый топик сообщение, я так и не разобрался пока что
Если тебе как и мне нужно исключительно переслать сообщение, то вот такое решение есть
await client(functions.messages.ForwardMessagesRequest(
from_peer=sender_id, # <- chat where the messages exist
id=[event.message.id], # <- message ids to forward from source_chat
to_peer=target_chat, # <- where to forward the messages
top_msg_id=TOPIC_ID, # <- topic id
))