You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Telegram群组中模拟多用户单独测试自建机器人

解决办法

1. 改用私聊触发Telethon客户端发消息

核心问题是Telegram禁止机器人接收其他机器人的消息,所以把Telethon客户端的指令触发从群组改成和你主账号的私聊,用真实账号发指令给Telethon客户端,再让它在群组里模拟用户发言,就能绕开限制。

修改后的Telethon代码示例:

from telethon import events

# 替换成你主账号的Telegram ID
YOUR_MAIN_ACCOUNT_ID = 123456789

@client.on(events.NewMessage(chats=YOUR_MAIN_ACCOUNT_ID))
async def private_command_handler(event):
    # 指令格式:send <群组ID> <内容>
    msg_parts = event.text.split(maxsplit=2)
    if len(msg_parts) < 3 or msg_parts[0].lower() != 'send':
        await event.reply("指令格式错误,请用:send <群组ID> <要发送的内容>")
        return
    
    target_chat_id = int(msg_parts[1])
    content = msg_parts[2]
    
    try:
        await client.send_message(target_chat_id, content)
        await event.reply(f"已发送到群组:{content}")
    except Exception as e:
        await event.reply(f"发送失败:{str(e)}")

使用方法:

  • 用主账号给Telethon客户端账号发私聊消息,比如send -100123456789 这是模拟用户的发言
  • 客户端会自动把内容发到指定群组,测试机器人就能收到这条“用户消息”

2. 注册多个Telegram小号

如果不想折腾代码,可以用虚拟手机号或接码平台注册1-2个小号(需遵守Telegram服务条款),直接用小号在群组里手动操作,模拟多用户交互场景,这种方法最直观,适合快速测试简单逻辑。

3. 给Telethon客户端加终端键盘交互

要更灵活的实时操作,可以给Telethon客户端加本地键盘输入功能,直接在终端输入内容发送到群组:

import asyncio

async def input_loop():
    while True:
        content = input("请输入要发送到群组的内容(输入exit退出):")
        if content.lower() == 'exit':
            break
        # 替换成你的测试群组ID
        await client.send_message(-100123456789, content)

# 启动客户端后运行输入循环
client.start()
loop = asyncio.get_event_loop()
loop.create_task(input_loop())
loop.run_forever()

启动客户端后,直接在终端输入内容就能发送到群组,无需聊天指令,完全实时操作。

内容的提问来源于stack exchange,提问作者Satoshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:50:09