You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何编写自动与Telegram Bot交互的脚本?(Windows 10环境)

嘿,我来帮你搞定这个Telegram Bot自动化交互的事儿!你之前试了batch和Telegram-CLI碰壁,那咱们换个更靠谱、更灵活的路子——用Python的Telegram客户端库来实现,完全能满足你和非自研Bot的自动化交互需求。

实现Telegram Bot自动化交互的完整步骤

第一步:准备基础环境

  • 先确保你的Windows 10上装了Python 3.7及以上版本,没装的话去Python官网下载安装就行,记得勾选“Add Python to PATH”选项。
  • 打开命令提示符(CMD),安装telethon这个好用的Telegram客户端库,输入命令:pip install telethon

第二步:获取Telegram API凭证

要模拟用户账号操作,必须先拿到Telegram官方的API权限:

  • 用你的Telegram账号登录Telegram开发者平台,创建一个新应用(随便填个应用名、描述就行),创建完成后就能拿到API IDAPI Hash,把这两个信息记下来,后面脚本要用到。

第三步:编写自动化交互脚本

下面是一个基础示例脚本,能实现发送/start/help指令,并自动接收Bot的回复,你可以根据需求扩展逻辑:

from telethon import TelegramClient, events

# 替换成你自己的API信息和手机号
API_ID = 123456  # 改成你的API ID
API_HASH = 'abcdefghijklmnopqrstuvwxyz123456'  # 改成你的API Hash
PHONE_NUMBER = '+8613xxxxxxxxx'  # 你的Telegram绑定手机号

# 初始化客户端,my_session是会话文件名,会保存登录状态
client = TelegramClient('my_session', API_ID, API_HASH)

async def main():
    # 登录账号(第一次运行会提示输入Telegram发送的验证码)
    await client.start(PHONE_NUMBER)
    
    # 替换成你要交互的Bot的用户名,比如@example_bot
    target_bot = '@your_target_bot'
    
    # 发送/start指令
    await client.send_message(target_bot, '/start')
    print("已发送/start指令")
    
    # 监听Bot的回复
    @client.on(events.NewMessage(from_users=target_bot))
    async def handle_bot_reply(event):
        bot_reply_content = event.message.text
        print(f"Bot回复内容:{bot_reply_content}")
        
        # 可以根据Bot的回复触发后续操作,比如收到初始回复后发/help
        if '欢迎使用' in bot_reply_content:
            await client.send_message(target_bot, '/help')
            print("已发送/help指令")
    
    # 保持脚本运行,持续监听消息
    await client.run_until_disconnected()

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())

第四步:运行和调试脚本

  • 把上面的代码保存为telegram_auto.py文件
  • 打开CMD,进入文件所在目录,运行命令:python telegram_auto.py
  • 第一次运行会要求你输入Telegram发送到账号的验证码,输入后脚本就会自动登录并执行交互逻辑
  • 你可以根据Bot的回复内容,在handle_bot_reply函数里添加更多分支逻辑,比如触发其他指令、解析回复里的关键信息等

为什么不推荐Telegram-CLI?

你提到Telegram-CLI有局限,确实如此——它现在维护频率低,Windows上的兼容性差,而且实现复杂交互的成本很高。相比之下,telethon这种Python库更灵活,能轻松实现定时发送、根据回复内容分支执行、处理Bot的 inline 按钮等复杂需求,上手也更快。

注意事项

  • 不要频繁发送指令,避免触发Telegram的账号限制,遵循平台使用规则
  • 脚本生成的my_session.session文件会保存你的登录状态,不要泄露给他人
  • 如果需要处理Bot的按钮交互,可以用telethonInlineKeyboardButton相关方法来模拟点击操作

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

火山引擎 最新活动