使用Bot定期发送电报消息

时间:2020-05-23 11:12:45

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

给出以下代码:

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

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

2 个答案:

答案 0 :(得分: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时间。

有关更多信息,请在Extensions – JobQueue此处

答案 1 :(得分:0)

也许this answer可以帮助您解决问题。其次,我建议您看一下Flask和Node-RED。通过this tutorial,我认为您会了解如何轻松创建结构。