Как использовать Jobqueue в Python-telegram-bot - PullRequest
0 голосов
/ 28 сентября 2018

Я смог очень легко сделать бота, прочитав документы , но Jobqueue не работает, как написано.Метод run_daily использует объект datetime.time для отправки сообщения в определенное время, но этот код не выполняет свою работу по отправке сообщения и не показывает никаких ошибок.Он просто продолжает работать

    import datetime
    from telegram import bot
    from telegram.ext import Updater
    def callback_minute(bot, job):
        bot.send_message(chat_id=475838704, text='PlEaSe wOrK!')

    def main():
        updater = Updater()
        bot = updater.bot
        job = updater.job_queue

        dispatcher = updater.dispatcher

        job.run_daily(callback_minute, time=datetime.time(6,33,00))

        updater.start_polling()
        updater.idle()

    if __name__ == '__main__':
        main()

1 Ответ

0 голосов
/ 20 апреля 2019

Может быть, это поможет:

from telegram.ext import Updater, CommandHandler

def daily_job(bot, update, job_queue):
    """ Running on Mon, Tue, Wed, Thu, Fri = tuple(range(5)) """
    bot.send_message(chat_id=<YOUR CHAT ID>, text='Setting a daily notifications!')
    t = datetime.time(10, 00, 00, 000000)
    job_queue.run_daily(notify_assignees, t, days=tuple(range(5)), context=update)

def notify_assignees(bot, job):
    bot.send_message(chat_id=<CHAT ID>, text="Some text!")

updater = Updater(<BOT_TOKEN>)
updater.dispatcher.add_handler(CommandHandler('notify', daily_job, pass_job_queue=True))
updater.start_polling()

и сказать боту /notify

...