@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)
  • Вопрос задан
  • 254 просмотра
Решения вопроса 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 не понял, попробуй объяснить
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект