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

python-telegram-bot 20.4版本job_queue为None,求定时发消息可行示例

解决python-telegram-bot 20.4中JobQueue为None的问题

问题原因

在python-telegram-bot 20.x版本中,JobQueue不再是Application的默认内置组件,需要手动导入并注册到应用实例中,直接访问application.job_queue会返回None。

可行示例代码

以下是实现每隔60秒向指定聊天发送消息的完整可运行代码:

from telegram.ext import Application, ContextTypes
from telegram.ext.jobqueue import JobQueue

# 定时任务的回调函数
async def send_periodic_message(context: ContextTypes.DEFAULT_TYPE):
    # 替换为你的目标聊天ID(私人聊天ID或频道ID)
    target_chat_id = "123456789"
    await context.bot.send_message(chat_id=target_chat_id, text="每隔60秒发送的定时消息")

def main():
    # 替换为你的机器人Token
    BOT_TOKEN = "你的机器人Token"
    
    # 创建Application实例
    application = Application.builder().token(BOT_TOKEN).build()
    
    # 初始化JobQueue并注册到应用
    job_queue = JobQueue()
    job_queue.set_application(application)
    application.add_handler(job_queue)
    
    # 添加重复执行任务:每隔60秒执行一次,首次执行延迟10秒
    job_queue.run_repeating(send_periodic_message, interval=60, first=10)
    
    # 启动机器人
    application.run_polling()

if __name__ == "__main__":
    main()

关键说明

  • 必须手动导入JobQueue并完成注册,这是20.x版本与旧版本的核心差异。
  • target_chat_id需替换为实际值:私人聊天ID可通过给机器人发消息后,从update.message.chat.id获取;频道需确保机器人是管理员且拥有发消息权限。
  • 确认机器人Token正确,且机器人已正常接入Telegram服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:16:05