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

如何用Python获取Telegram机器人发送的消息并执行后续操作?

实现Telegram机器人消息的监听与打印

当然可以实现,分两种场景给出解决方案:

场景1:作为用户接收并打印机器人发来的消息

如果是你作为聊天用户,想要捕获机器人主动发送给你的消息并打印,需要使用Telegram用户客户端库(比如telethon),因为机器人API只能监听发给它的消息,无法获取用户收到的消息。

步骤:

  1. 安装依赖库
pip install telethon
  1. 获取你的API ID和API Hash:在Telegram开发者平台(my.telegram.org)注册账号、创建应用后即可获得。
  2. 编写监听代码:
from telethon import TelegramClient, events
import asyncio

# 替换为你的信息
API_ID = 你的API_ID数字
API_HASH = '你的API_HASH字符串'
SESSION_NAME = 'telegram_session'  # 本地登录状态保存文件名
TARGET_BOT_USERNAME = '@目标机器人的用户名'  # 比如@example_bot

async def main():
    # 初始化客户端,首次运行需输入手机号和验证码登录
    client = TelegramClient(SESSION_NAME, API_ID, API_HASH)
    await client.start()

    # 监听所有新消息
    @client.on(events.NewMessage)
    async def handle_bot_message(event):
        sender = await event.get_sender()
        # 判断消息是否来自目标机器人
        if sender and sender.username == TARGET_BOT_USERNAME.lstrip('@'):
            print(f"机器人消息内容:{event.message.text}")
            # 执行后续操作
            await process_bot_message(event.message.text)

    print("客户端已启动,等待机器人消息...")
    await client.run_until_disconnected()

async def process_bot_message(msg_text):
    # 示例:根据消息内容执行不同操作
    if '订单' in msg_text:
        print("开始处理订单相关逻辑")
    elif '提醒' in msg_text:
        print("触发提醒操作")

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

场景2:开发机器人后端,打印机器人发出的消息

如果你是机器人开发者,想要在后端打印机器人发送给用户的消息,只需在发送消息的代码块中直接打印即可,以python-telegram-bot库为例:

步骤:

  1. 安装依赖库
pip install python-telegram-bot==13.7
  1. 编写机器人代码:
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

BOT_TOKEN = '你的机器人Token'

def start_cmd(update: Update, context: CallbackContext):
    reply_msg = "你好!这是机器人的欢迎消息"
    # 打印即将发送的消息
    print(f"机器人将发送:{reply_msg}")
    update.message.reply_text(reply_msg)

def echo_msg(update: Update, context: CallbackContext):
    user_input = update.message.text
    print(f"用户消息:{user_input}")
    reply_msg = f"你输入的内容是:{user_input}"
    # 打印机器人回复内容
    print(f"机器人将发送:{reply_msg}")
    update.message.reply_text(reply_msg)

def main():
    updater = Updater(BOT_TOKEN)
    dp = updater.dispatcher
    dp.add_handler(CommandHandler("start", start_cmd))
    dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo_msg))
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

内容的提问来源于stack exchange,提问作者Juan Pablo Rodríguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:03:40