bot.register_next_step
в своем коде , вот пример как он работает import telebot
import requests
from telebot import types
global stairs
bot = telebot.TeleBot('token')
@bot.message_handler(commands=["start"])
def start(m, res=False):
bot.send_message(m.chat.id, 'Хотите узнать погоду?\nВведите свой город')
bot.register_next_step_handler_by_chat_id(m.chat.id, regist)
@bot.message_handler(content_types=['text'])
def main(m):
if m.text.strip() == 'Текущая погода в городе':
bot.send_message(m.chat.id, f'Сейчас в {stairs} - жарко')
def regist(message):
global stairs
stairs = message.text
bot.send_message(message.chat.id, f'Твой город :{message.text}')
bot.polling(none_stop=True, interval=0)
register_next_step_handler
? Но если сильно нужно поясняю! После выполнение этой строки register_next_step_handler
бот ждет сообщения , и как только ты ему отправишь любое сообщение то он отреагирует на него def menu(message):
markup = types.InlineKeyboardMarkup(row_width=3)
item1 = types.InlineKeyboardButton("Привіт", callback_data='Hello')
markup.add(item1)
bot.send_message(message.chat.id, "Меню", parse_mode='html', reply_markup=markup)
вот так ! import telebot
from telebot import types
BOT_TOKEN = твой токен
bot = telebot.TeleBot(BOT_TOKEN)
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btnn1 = types.KeyboardButton("Проверка")
markup.add(btnn1)
bot.send_message(message.chat.id, text="Здравствуйте!", reply_markup=markup)
@bot.message_handler(content_types=['text'])
def func(message):
if message.text == "Проверка":
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btnn1 = types.KeyboardButton("Да, мне есть 18")
btnn2 = types.KeyboardButton("Нет, мне нету 18")
markup.add(btnn1, btnn2)
bot.send_message(message.chat.id, text="Вам есть 18?", reply_markup=markup)
elif message.text == "Да, мне есть 18":
bot.send_message(message.chat.id, text='Вы прошли проверку!')
elif message.text == 'Нет, мне нету 18':
bot.send_message(message.chat.id, text='Вы не прошли проверку')
bot.polling()
import telebot
from telebot import types
BOT_TOKEN = твой токен
bot = telebot.TeleBot(BOT_TOKEN)
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btnn1 = types.KeyboardButton("Проверка")
markup.add(btnn1)
bot.send_message(message.chat.id, text="Здравствуйте!", reply_markup=markup)
@bot.message_handler(content_types=['text'])
def func(message):
if message.text == "Проверка":
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btnn1 = types.KeyboardButton("Да, мне есть 18")
btnn2 = types.KeyboardButton("Нет, мне нету 18")
markup.add(btnn1, btnn2)
msg = bot.send_message(message.chat.id, text="Вам есть 18?", reply_markup=markup)
bot.register_next_step_handler(msg,vosrat)
def vosrat(message):
if message.text == "Да, мне есть 18":
bot.send_message(message.chat.id, text='Вы прошли проверку!')
elif message.text == 'Нет, мне нету 18':
bot.send_message(message.chat.id, text='Вы не прошли проверку')
bot.polling()
В этом месте нужно ссылаться на айди исходного сообщения, а не жестко его прописывать
import telebot
from telebot import telebot.types
# pip install pytelegrambotapi
token = 'Ваш токен'
bot = telebot.TeleBot(token)
chat_id = '' # Например chat_id = '223344'
# Telegram bot: Get My Id
@bot.message_handler(commands=['start'])
def button(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bt1 = types.KeyboardButton('⏰Записатися на хімчистку')
bt2 = types.KeyboardButton('Оплатити')
bt3 = types.KeyboardButton('Розробник')
markup.add(bt1, bt2, bt3)
bot.send_message(message.chat.id, '<b>Привіт {0.first_name}!</b> <b>Що бажаєш обрати?</b>'.format(message.from_user, bot.get_me( )),
parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def answer(message):
if message.chat.type == 'private':
if message.text == '⏰Записатися на хімчистку':
bot.send_message(message.message_id, "Форма подачі запису: \n 1.Напиши свій ПІБ, і номер телефону для зв'язку.\n(Наш менеджер тобі передзвонить для уточнення інформації)")
elif message.text == 'Оплатити':
bot.send_message(message.message_id, 'https://next.privat24.ua/money-transfer/card')
elif message.text == 'Розробник':
bot.send_message(message.message_id, 'Liiinkoln')
@bot.message_handler(func=lambda message: True)
def echo_message(message):
bot.send_message(chat_id=chat_id, text=message.text)
bot.polling()
bot.send_message(message.chat.id, f'Тема:"{sheet["F" + str(i)].value}"\nВопрос:"{sheet["E" + str(i)].value}"\nСпособ ответа:{sheet["G" + str(i)].value}\nTelegram: @{sheet["I" + str(i)].value} \nТел:{sheet["C" + str(i)].value}\n', reply_markup=markup)