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

Как в PyTelegramBotApi заставить работать два обработчика, двух inline клавиатур сразу?

Я создаю бота для телеграма, сделал 2 клавиатуры и обработчики для них, но первая клавиатура обрабатывается нормально, а вторая даже не обрабатывается. Исходный код ниже.
import telebot 
from telebot import types

bot = telebot.TeleBot("token")

answer = types.InlineKeyboardMarkup(row_width=2) # клавиатурки
ans = types.InlineKeyboardMarkup(row_width=2)


button1 = types.InlineKeyboardButton("ВКонтакте", callback_data='vk')
button2 = types.InlineKeyboardButton("Телеграм", callback_data='tg')
button3 = types.InlineKeyboardButton("Инстаграм", callback_data='inst') 
button4 = types.InlineKeyboardButton("Фейсбук", callback_data='fb')
button5 = types.InlineKeyboardButton("Продолжить", callback_data='pr')

answer.add(button1,button2,button3,button4) 
ans.add(button5)



@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, " Приветствую тебя на проекте AccOne.\n\n Тут ты можешь купить аккаунт в нужной тебе соц. сети.\n\n⬇️ Жми на кнопку ниже.", reply_markup=ans)

@bot.callback_query_handler(func=lambda call: True) 
def callback_inline(call):
   try:
       if call.message:
           if call.data == "pr":
               bot.send_message(call.message.chat.id, " Какая соц. сеть тебя инетерсует?", reply_markup=answer)
   except Exception as e:
       print(repr(e))


@bot.callback_query_handler(func=lambda call: True) 
def callback_inline(call):
   try:
       if call.message:
           if call.data == "vk":
               bot.send_message(call.message.chat.id, "✅ Отлично!")
           if call.data == "tg":
               bot.send_message(call.message.chat.id, "✅ Отлично!")
           if call.data == "inst":
               bot.send_message(call.message.chat.id, "✅ Отлично!")
           if call.data == "fb":
               bot.send_message(call.message.chat.id, "✅ Отлично!")
   except Exception as e:
       print(repr(e))
       



bot.polling()
  • Вопрос задан
  • 314 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@defriz
люблю js
то, что Вы сделали не будет работать, как Вы думаете. они не будут дополнять друг друга или ждать. для этого Вам нужна какая-нибудь библиотека, с помощью которой Вы сможете ждать ответа от пользователя после сообщения.

можно обойтись без ожидания, если после нажатия какой-нибудь кнопки соц. сети сохранять в базу пользователя ее значение и по необходимость использовать это.
Ответ написан
@pr0l
@bot.callback_query_handler(func=lambda call: call.data == 'vk’)
возможно про это был вопрос?
Ответ написан
Ваш ответ на вопрос

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

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