@TellS

Почему Телеграм бот при нажатии на кнопки выдаёт сообщение об ошибке?

Почему, когда я нажимаю на старт, пишет то сообщение которое я указал , его выдает и клавиатуру тоже . Но например если я нажимаю на на какую либо кнопку выдает сообщение из def welcome

import telebot
from telebot import types

bot = telebot.TeleBot('ТУТ ТОКЕН')


markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
butt1 = types.KeyboardButton('ЗАРАБОТАТЬ')
butt2 = types.KeyboardButton('КАНАЛ')
markup.add(butt1, butt2)

markup2 = types.ReplyKeyboardMarkup(resize_keyboard = True)
butt1 = types.KeyboardButton('Дальше')
butt2 = types.KeyboardButton('Назад')
markup2.add(butt1, butt2)

@bot.message_handler(content_types = ['text'])
def welcome(message):
    bot.send_message(message.chat.id, 'Привет епта ', reply_markup = markup)

@bot.message_handler(content_types= ['text'])
def start(message):
    bot.send_message(message.chat.id, 'Ага', reply_markup = markup)
    if message.text == 'ЗАРАБОТАТЬ':
        bot.send_message(message.chat.id, 'Что-бы заработать подними жопу', reply_markup = markup2)
    elif message.text =='КАНАЛ':
        bot.send_message(message.chat.id, 'Это наш канал', reply_markup = markup2)

def lala(message):
    if message.text == 'Дальше':
        bot.send_message(message.chat.id, 'Ага ага')
    elif message.text == 'Назад':
        bot.send_message(message.chat.id, 'Вы вернулись', reply_markup = markup)

bot.polling(none_stop = True)
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Fallervood
@Fallervood
В декораторе Вы указываете, что он будет срабатывать на любой текст поступающий боту. Текст Вы отправляете через кнопки. Кроме того, функция start под точно таким же декоратором.

Следует заменить на :
@bot.message_handler(commands=['start'])

Указал, ничего не изменяя
import telebot
from telebot import types

bot = telebot.TeleBot('ТУТ ТОКЕН')


markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
butt1 = types.KeyboardButton('ЗАРАБОТАТЬ')
butt2 = types.KeyboardButton('КАНАЛ')
markup.add(butt1, butt2)

markup2 = types.ReplyKeyboardMarkup(resize_keyboard = True)
butt1 = types.KeyboardButton('Дальше')
butt2 = types.KeyboardButton('Назад')
markup2.add(butt1, butt2)

@bot.message_handler(content_types = ['text']) # Здесь вы указываете декоратор
def welcome(message):
    bot.send_message(message.chat.id, 'Привет епта ', reply_markup = markup)

@bot.message_handler(content_types= ['text']) # Здесь заменить
def start(message):
    bot.send_message(message.chat.id, 'Ага', reply_markup = markup)
    if message.text == 'ЗАРАБОТАТЬ':
        bot.send_message(message.chat.id, 'Что-бы заработать подними жопу', reply_markup = markup2)
    elif message.text =='КАНАЛ':
        bot.send_message(message.chat.id, 'Это наш канал', reply_markup = markup2)

def lala(message):
    if message.text == 'Дальше':
        bot.send_message(message.chat.id, 'Ага ага')
    elif message.text == 'Назад':
        bot.send_message(message.chat.id, 'Вы вернулись', reply_markup = markup)

bot.polling(none_stop = True)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@balak_in
Чтобы обрабатывать сообщения из кнопок используй:
@bot.message_handler(regexp='ЗАРАБОТАТЬ')
Вопрос про start не понял, попробуй объяснить
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 мая 2022, в 10:41
2000 руб./в час
26 мая 2022, в 10:22
3900 руб./за проект
26 мая 2022, в 09:53
3990 руб./за проект