【问题标题】:Send telegram message periodically using bot使用机器人定期发送电报消息
【发布时间】:2023-03-22 20:59:02
【问题描述】:

给出下面的代码:

def start(update, context):
    context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

是否可以定期调用此函数并让我的机器人自动向用户发送消息,而不是用户输入“/start”

【问题讨论】:

    标签: python-3.x telegram telegram-bot python-telegram-bot


    【解决方案1】:

    您需要创建一个由python-telegram-bot 提供的job 对象 所以要简单地运行函数start,假设每分钟你都可以使用这种方法:

    j= updater.job_queue
    
    def start(update, context):
        context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
    
    j.run_repeating(start,interval = 60  ,first= 0 )
    updater.start_polling()
    

    如果您想每天在特定时间运行它,您可以使用:

    import datetime 
    j= updater.job_queue
    
    def start(update, context):
        context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
    
    t= datetime.time(6, 15, 00, 000000)
    
    j.run_daily(start, t, days=(0, 1, 2, 3, 4, 5, 6), context=None, name=None)
    updater.start_polling()
    
    

    请注意,没有要添加到调度程序的处理程序。

    您可能应该知道datetime.time 对象如果未修改则使用 UTC 时间。

    更多信息请查看Extensions – JobQueue这里

    【讨论】:

      【解决方案2】:

      也许this answer 可以帮助您解决问题。其次,我可以推荐你看看 Flask 和 Node-RED。从this tutorial,我想你会明白如何轻松地创建你的结构。

      【讨论】:

        猜你喜欢
        • 2017-03-19
        • 2017-09-01
        • 2021-01-29
        • 2016-03-11
        • 1970-01-01
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 2019-10-30
        相关资源
        最近更新 更多