2017-01-28 3 views
0

Я использую python 3.5.1 с pytelegrambotapi и пытаюсь настроить уведомления от бота, которые он должен отправлять каждый день в определенное время.Как запланировать telegraom бот отправить сообщение с pytelegrambotapi

Я действительно не понимаю, как это сделать, будем благодарны, если кто-то покажет мне пример бота, который может отправлять уведомления в определенное время каждый день пользователям, которые используют бот.

К настоящему моменту я попытался использовать модуль расписания, но проблема в том, что мне нужно вызвать функцию, которая отправляет уведомления, с аргументами (список идентификаторов пользователей, с которыми r используется бот), поэтому, если я попытаюсь использовать что-то вроде этого:

schedule.every().day.at('17:00').do(send_test(user_id)) 

я получаю сообщение об ошибке:

TypeError: the first argument must be callable 

ответ

1

проблема заключается не в библиотеке телеграмм, но с schedule.
Метод do выполняет функцию, а не результат вызова функции. Вы можете поставить þér аргументов, принимаемые функция в качестве дополнительных аргументов для do:

schedule.every().day.at('17:00').do(send_test, user_id) 
+0

Спасибо, но теперь, кажется, что боты просто не работают: http://pastebin.com/9a8223ay So , если я пытаюсь что-то написать боту, он ничего не делает. Я думаю, это из-за цикла «Пока» в функции уведомлений, но я не знаю, как использовать расписание модулей без него. – mrser

+0

@mrser вам нужно изменить декоратор функции на '@ bot.message_handler (func = lambda m: True)'. Это сообщит модулю, что этот обработчик должен обрабатывать каждое сообщение. Подробнее о pytelegrambotapi [здесь] (https://github.com/eternnoir/pyTelegramBotAPI) – ovs

+0

изменен http://pastebin.com/N2B8CpWi, но все еще не работает. – mrser

Смежные вопросы