如何让电报机器人将消息发送到论坛主题而不是一般聊天

问题描述 投票:0回答:1

我知道它是如何工作的。我尝试了这段代码,但机器人将消息发送到错误的位置。 也许这个话题有一些特殊的论点? 无论我尝试做什么,所有消息都会发送到一般主题。

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())
python telegram telegram-bot sendmessage
1个回答
0
投票

我查看了电报机器人文档,发现我缺少每个创建的主题都有的 msg_thread_id 参数。

© www.soinside.com 2019 - 2024. All rights reserved.