我是电报机器人构建的新手,问题是,如果用户在12个小时内不执行任何操作,怎么可能向用户发送消息,而在用户继续不执行操作时又发送一条消息给用户?但是,例如,如果他单击消息4中的按钮,则会跳过消息5。
if call.data == 'GetLesson1':
bot.send_message(call.message.chat.id, mg.third_message, reply_markup=kb.check_exercise())
push_data.append(call.data)
if call.data == 'Exercise':
bot.send_message(call.message.chat.id, mg.sixth_message, reply_markup=kb.check_exercise())
time.sleep(54000)
if call.data is None:
bot.send_message(call.message.chat.id, mg.fourth_message, reply_markup=kb.check_exercise())
time.sleep(54000)
if call.data is None:
bot.send_message(call.message.chat.id, mg.fives_message, reply_markup=kb.check_exercise())
答案 0 :(得分:0)
您需要阅读JobQueue
中可用的python-telegram-bot。
这是一个示例,如何在一分钟内发送消息:
def callback_minute(context: telegram.ext.CallbackContext):
context.bot.send_message(chat_id='@examplechannel',
text='One message every minute')
job_minute = j.run_repeating(callback_minute, interval=60, first=0)
在该回调中,您可以检查用户从那时开始是否发送任何消息,或者甚至在收到新消息时完全删除此作业(因此无需检查)。
job_minute.schedule_removal()
请参阅文档中的more examples。