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

Почему не работает тг бот(Telebot, python)?

import telebot 
from words import word_list, word_translate 
from random import randint 
from telebot import types 
token="мой токен" 
bot=telebot.TeleBot(token) 
 
@bot.message_handler(commands=['start']) 
def start_message(message): 
    mess = f'Привет, {message.from_user.first_name}! Я - бот по изучению английского языка!' 
    bot.send_message(message.chat.id, mess) 
 
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True) 
    leks = types.KeyboardButton('Лексика') 
    gram = types.KeyboardButton('Грамматика') 
    razg = types.KeyboardButton('Разговорная речь') 
    translator = types.KeyboardButton('Переводчик') 
    markup.add(leks,gram,razg,translator) 
    bot.send_message(message.chat.id, 'Выберите тип заданий:',reply_markup=markup) 
 
 
@bot.message_handler() 
def leks(message): 
    if(message.text == 'Лексика'): 
        keyboard = telebot.types.InlineKeyboardMarkup(row_width=1) 
        randomnoeslovo = telebot.types.InlineKeyboardButton(text="Начать",callback_data='bat') 
        keyboard.add(randomnoeslovo) 
        bot.send_message(message.chat.id, 'Вы выбрали раздел "Лексика"! Вам будут выводиться слова и их перевод. Нажмите кнопку ниже, чтобы начать.', reply_markup=keyboard) 
 
@bot.callback_query_handler(func=lambda callback: callback.data) 
def randslovo(callback): 
    if callback.data == 'bat': 
        sl = randint(0, len(word_list)-1) 
        bot.send_message(callback.message.chat.id,word_list[sl]) 
  
bot.polling(none_stop=True)

word_list это список слов, находящийся в другом файле words.py
По итогу не работает кнопка "Начать"
65e1e233b9ea6763699354.png
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
shabelski89
@shabelski89
engineer
кажется нужно заменить
@bot.callback_query_handler(func=lambda callback: callback.data)

на
@bot.callback_query_handler(func=lambda callback: True)
Ответ написан
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Ваш код работает вполне корректно:
65e235c3793be882191990.png
Вероятно, проблема не в данном коде.

Неприятен таймаут для инлайн кнопок, но это уже другое...
Ответ написан
@kir_1_top Автор вопроса
Всё работает, надо было токен поменять
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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