Найти - Пользователи
Полная версия: Не работает register_next_step_handler в While true
Начало » Python для экспертов » Не работает register_next_step_handler в While true
1
Anton_Kozlov
Здравствуйте! Есть простой код для телеграм бота:
 def sendm(message):
    print('Так сработало')
while True:
    msg = bot.send_message(chat_id, 'Вы сегодня выпили?')
    bot.register_next_step_handler(msg, sendm)
    time.sleep(60)

По какой-то странной причине “bot.register_next_step_handler(msg, sendm)” не работает в цикле while true.
Если этот код вынести из While True, то “bot.register_next_step_handler(msg, sendm)” будет работать. И я не знаю в чем проблема. Уже пятый день не могу ее решить!
xam1816
Anton_Kozlov
По какой-то странной причине “bot.register_next_step_handler(msg, sendm)” не работает в цикле while true.
полный код нужен
а так цикл должен быть в функции которая обрабатывает сообщения,через каждые 60 секунд будет спрашивать выпили ли вы,среагирует на ответ столько раз сколько задавался вопрос
Anton_Kozlov
xam1816
Это и есть полный код!
Ну если хотите прям полный
 import telebot
import json
import time
from telebot import types
API_TOKEN = "token"
chat_id='89221080'
def sendm(message):
    print('Так сработало')
while True:
    msg = bot.send_message(chat_id, 'Вы сегодня выпили?')
    bot.register_next_step_handler(msg, sendm)
    time.sleep(60)
bot.polling()
xam1816
Домой приду посмотрю,а так не пойму логики,вот отправил ты сообщение “вы сегодня выпили?”,в переменную msg сохранится ответное сообщение,но чтобы это сообщение принять нужен декоратор @message_handler с функцией которая принимает message.,если в переменной msg придет сообщение,сработает строчка которая запускает функцию sendm(msg),вчера твой цикл я запускал в декораторе и он работал
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB