@DEUS9

Как передать параметры чата в функцию telegram bot, python-telegram-bot без Handler?

def bot():
    print("bot online")
    updater = Updater(token=Tokens.bot_token('live'))
    dispatcher = updater.dispatcher
    commands = Commands
    # job
    j = updater.job_queue
    j.run_repeating(InfoMessage.use_discounts, 15) #<---- Задание с задержкой в которое нужно передать параметры (chat_id)
    #commands
    start_handler = CommandHandler('start', commands.start)
    dispatcher.add_handler(start_handler)
    contact_handler = MessageHandler(Filters.contact, commands.contact)
    dispatcher.add_handler(contact_handler)
    updater.start_polling()

if __name__ == '__main__':
    bot()

class InfoMessage():
    def use_discounts(bot, update):
        print(update.message.chat_id)

Как в методе use_discounts взять message.chat_id? Остальные функции работают через Handler, он передает параметры bot, update. Метод use_discounts нужно вызвать отдельно без команд ( вызвал через JobQueue) и что бы работал после перезапуска бота.
  • Вопрос задан
  • 962 просмотра
Решения вопроса 1
@be52
update.message.chat_id это номер собеседника, у функции которая вызывается по расписанию его нет и быть не может

но если ты знаешь чей то номер то можешь ему отправить сообщение из этой функции
bot.send_message(chat_id=123456, text = '*wake up* Neo', parse_mode='Markdown')

j.run_repeating(func, 0)

def func(bot, job): <-- тут должен быть job а не update
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы