使用机器人定期发送电报信息

问题描述 投票:0回答:1

给出下面的代码。

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

能否定期调用这个函数 让我的机器人自动向用户发送消息 而不是让用户输入 "开始"。

python-3.x telegram telegram-bot python-telegram-bot
1个回答
5
投票

你需要创建一个 job 递送的对象 python-telegram-bot 因此,为了简单地运行该函数 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时间。

更多信息请查看 扩展 - 工作队列 此处


0
投票

也许吧 本回答 有助于解决你的问题。其次我可以推荐你的是看看Flask和Node-RED。从 本教程我想你会明白如何轻松创建你的结构。

© www.soinside.com 2019 - 2024. All rights reserved.