Задать вопрос
@Vihr1988

Как сделать в телеграм боте на python библиотека Telebot, при команде "/start "предлогалось решить captchu?

Приветствую признанных и не признанных гениев)) Ребят, сам начал учиться програмированию недавно, нужна ваша помощь! Изрыл весь интернет и не смог найти решение внедрение капчи в боте! Короче сам вопрос который меня интересует! Вот часть кода, необходимо сделать так, что инлайн клавиатура с меню выдавалась пользователю только тогда когда он решит капчу!

@bot.message_handler(commands=['start'])
def any_msg(message: types.Message):
markup = types.InlineKeyboardMarkup(row_width=1).add(
types.InlineKeyboardButton(text="Выберите услугу", callback_data="choise_service"),
types.InlineKeyboardButton(text="Пополнить баланс", callback_data="replenish_balans"),
types.InlineKeyboardButton(text="Выберите направление доставки", callback_data="1.2"),
types.InlineKeyboardButton(text="Связь с оператором", callback_data="1.3")
)
bot.reply_to(message, f"Привет, {message.from_user.first_name}\nВаш баланс:0 руб", parse_mode='HTML')
bot.send_message(message.chat.id,
"Грузоперевозки по всей росии, услуги грузчиков,заказ спец\n техники",
reply_markup=markup)
  • Вопрос задан
  • 573 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@Lucky1337
Вот тебе для начала код который генерирует капчу в виде примера и нужно выбрать верный ответ
import random

def captch():
	numb_1 = random.randint(1, 10)
	numb_2 = random.randint(1, 10)

	itog = numb_1 + numb_2

	random_numbs = []
	while True:
		if len(random_numbs) == 5:
			break
		n1 = random.randint(1, 10)
		n2 = random.randint(1, 10)
		if n1 + n2 == itog:
			continue
		else:
			random_numbs.append(n1+n2)

	return numb_1, numb_2, itog, random_numbs

Первые 2 элемента это слагаемые примера, 3 элемент верный ответ а 4 элемент это список из 5 неверных ответом
при команде /start генерируй эту капчу и выводи сообщение с примером и в виде инлайн кнопок сделай ответы на этот пример, не забудь написать callback обработчик для кнопок в котором приходит ответ примера с слагаемыми и после отправка сообщения с уже нужными для тебя инлайн кнопками.
Легкий для тебя вариант обработки верный пример или нет это в callback аргументе инлайн кнопок сделай так - 1 1 2 например, где первые 2 числа это слагаемые твои, а третий аргумент это ответ, твоя задачи разбить их с помощью split и проверять их верность, не бойся совать в инлайн кнопки не верный ответ на пример, твой обработчик каптчи должен просто учесть что пример не верный и делать что-то в этом случае
(Все это колхоз но зато просто)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы