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

Telegram Bot开发如何不使用Handler传递Update、CallbackContext参数

Telegram机器人内部函数透传update/context的实现方案

你不需要为第二个函数额外注册Handler,直接在第一个函数内部调用时,把当前接收到的update、context两个参数原样透传即可。这两个是普通的Python实例对象,不依赖Handler调度流程也能正常访问内部所有属性、方法,和Handler直接触发调用的效果完全一致。

修正后的可运行示例代码如下:

def check_url(update: Update, context: CallbackContext):
    # 直接透传两个参数给目标函数
    get_videos_ids(update, context)

def get_videos_ids(update: Update, context: CallbackContext):
    # 此处可正常使用update、context的所有能力,例如:
    # 获取消息内容
    input_text = update.message.text
    # 获取聊天ID
    chat_id = update.effective_chat.id
    # 调用bot发送消息等操作
    # context.bot.send_message(chat_id=chat_id, text="开始解析播放列表")
    pass

if __name__ == "__main__":
    updater.dispatcher.add_handler(MessageHandler(Filters.all, check_url))

注意事项

  • 不要手动重新构造Update或CallbackContext实例,直接透传Handler传入的原生对象即可,避免出现属性缺失、上下文不匹配的问题。
  • 后续如果有更多需要用到这两个参数的内部函数,都可以用同样的透传逻辑处理,没有调用层级的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:57:33