У меня вопрос по поводу встроенных кнопок в телеграмме. Итак, у меня много встроенных кнопок, и я хочу разделить их на несколько страниц. На каждой странице у меня есть кнопки вперед =>
и назад <=
для перемещения между страницами. Щелчок по каждой кнопке возвращает документ.
После вызова встроенной клавиатуры я разместил обработчик, обрабатывающий нажатие каждой кнопки. Кнопки первой страницы работают правильно, кроме кнопок вперед и назад. Страницы не меняются. Я использую библиотеку телеботов.
bot = telebot.TeleBot(token)
@bot.message_handler(commands=['start','help'])
def start(o):
bot.send_message(o.chat.id,'Hi,use buttons!')
def name(m):
keyboard = types.InlineKeyboardMarkup()
keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name
in ['button1','button2']])
keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name
in ['button3','button4']])
keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name
in ['=>']])
msg = bot.send_message(m.chat.id,'-----------Choose button----------',reply_markup=keyboard)
@bot.callback_query_handler(func=lambda c:True)
def inline(c):
if c.data == 'button1':
bot.send_document(c.message.chat.id,open('button1.pdf', 'rb'))
elif c.data == 'button2':
bot.send_document(c.message.chat.id,open('button2.pdf', 'rb'))
elif c.data == 'button3':
bot.send_document(c.message.chat.id,open('button3.pdf', 'rb'))
elif c.data == 'button4' :
bot.send_document(c.message.chat.id,open('button4.pdf', 'rb'))
elif c.data == '=>' :
keyboard = types.InlineKeyboardMarkup()
keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name
in ['button5','button6']])
while True:
try:
bot.polling(none_stop=True)
except Exception as e:
print(e)
time.sleep(15)
callback_data
, чтобы проверить, на какой странице вы сейчас находитесь. 13.04.2018