如何为作业队列编写电报机器人的回调函数?

How to write the callback function of a telegram bot for the job queue?

我对 job queue 这件事感到困惑。在回调函数中,我想访问用户消息并对其进行处理,但在文章中说回调只接受机器人和作业参数。有了这些,我无法访问 update.message.text。因此,例如,我想将以下函数重写为回调函数,但我无法弄清楚:

def echo(bot,update):
    if tldextract.extract(update.message.text).registered_domain:
        bot.send_message(chat_id= update.message.chat_id, text="OK")

我在这里错过了什么?

创建作业时必须传递上下文。

您可以阅读页面底部附近的示例 here

>>> from telegram.ext import CommandHandler
>>> def callback_alarm(bot, job):
...     bot.send_message(chat_id=job.context, text='BEEP')
...
>>> def callback_timer(bot, update, job_queue):
...     bot.send_message(chat_id=update.message.chat_id,
...                      text='Setting a timer for 1 minute!')
... 
...     job_queue.run_once(callback_alarm, 60, context=update.message.chat_id)
...
>>> timer_handler = CommandHandler('timer', callback_timer, pass_job_queue=True)
>>> u.dispatcher.add_handler(timer_handler)

当您使用 run_oncerun_dailyrun_repeating 职能。然后在你的回调函数中,你必须像你说的那样传递 2 个参数,botjob,然后通过访问 job.context.

获取你需要的数据