如何使Telegram机器人发送消息到论坛主题而不是群聊
我不知道这个是怎么工作的。我试了这个代码,但机器人把消息发到了错误的地方。可能这个话题有一些特殊的参数?无论我怎么尝试,所有的消息都发到了公共话题。
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这个参数。