如何使Telegram机器人发送消息到论坛主题而不是群聊

1 投票
1 回答
58 浏览
提问于 2025-04-14 15:52

我不知道这个是怎么工作的。我试了这个代码,但机器人把消息发到了错误的地方。可能这个话题有一些特殊的参数?无论我怎么尝试,所有的消息都发到了公共话题。

import os
import asyncio
from typing import Optional
from telegram import ForumTopic
from telegram import Bot, Message
import time

class AsyncBotClient:
    def __init__(self, bot_token: str):
        self.bot = Bot(token=bot_token)

    async def send_message(
        self,
        chat_id: str,
        text: str,
        *,
        parse_mode: Optional[str] = None,
        disable_web_page_preview: Optional[bool] = None,
        disable_notification: Optional[bool] = None,
        reply_to_message_id: Optional[int] = None,
        api_kwargs: Optional[dict] = None,
    ) -> Message:
        return await self.bot.send_message(
            chat_id=chat_id,
            text=text,
            parse_mode=parse_mode,
            disable_web_page_preview=disable_web_page_preview,
            disable_notification=disable_notification,
            reply_to_message_id=reply_to_message_id,
            api_kwargs=api_kwargs,
        )

async def main():
    bot_token = ""
    async_bot_client = AsyncBotClient(bot_token)
    topic_id = "-1002124######_33903"
    message_text = "test"
    await async_bot_client.send_message(chat_id=topic_id, text=message_text)

if __name__ == "__main__":
    asyncio.run(main())

1 个回答

1

我查看了Telegram机器人的文档,发现我漏掉了每个创建的话题都有的msg_thread_id这个参数。

撰写回答