Помогите мне. Мой код не работает.Ошибка в коде для бота Telegram Python 3.5
# -*- coding: utf-8 -*-
import time
import telebot
import config
from telebot import types
bot = telebot.TeleBot(config.token)
@bot.message_handler(content_types=["text"]) # отвечает на любое текстовое сообщение
def home(message):
keyboard = types.InlineKeyboardMarkup() # 1 кнопка в строке, скрывать клавиатуру после нажатия
callback_button = types.InlineKeyboardButton(text="Страна", callback_data="country")#Имена кнопок
keyboard.add(callback_button)
callback_button = types.InlineKeyboardButton(text="О Проекте", callback_data="about")#data - на какое имя потом ссылаться
keyboard.add(callback_button)
bot.send_message(message.chat.id, "Выберите страну или узнайте о проекте если тут впервые", reply_markup=keyboard)
# В большинстве случаев целесообразно разбить этот хэндлер на несколько маленьких
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
# Если сообщение из чата с ботом
if call.message:
if call.data == "country":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Выбери страну") #предлагаем страну
bot.register_next_step_handler(lvl2)#куда переходим на следующий шаг
if call.message:
if call.data == "about":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Проверка")
def lvl2(call):
keyboard = types.InlineKeyboardMarkup() # 1 кнопка в строке, скрывать клавиатуру после нажатия
callback_button = types.InlineKeyboardButton(text="Россия", callback_data="ru")#Имена кнопок
keyboard.add(callback_button)
callback_button = types.InlineKeyboardButton(text="Украина", callback_data="ua")#data - на какое имя потом ссылаться
keyboard.add(callback_button)
bot.send_message(message.chat.id, "Лвл 2", reply_markup=keyboard)
if __name__ == '__main__':
bot.polling(none_stop=True)
производительность при нажатии "СТРАНА" дисплеев:
TypeError: register_next_step_handler() недостающих 1 необходимых позиционной аргумент: 'Обратный вызов'
Я использую pyTelegramBotAPI.
Спасибо =) И как мне сделать переход к следующему меню "обратного вызова"? –
Я не уверен, понимаю ли я, что вы собираетесь делать. Я бы сделал то, что написал в первом сообщении (обновлено на примере) – tomasmor
Очень приятно! 1 вопрос, и можно вместо этого «Вы выбрали% s» сделать клавиатуру? Я хочу сделать меню много уровней. Пример: Америка - государство - графство - город. Как это возможно? Спасибо за помощь! –