Проблемы с загрузкой клавиатуры для бота в Telegram

12123212

Новичок
Пользователь
Сен 24, 2020
3
0
1
Python 3.8.5
list TelegramBotAPI

Сразу говорю я ещё только новичок в Python но азы уже знаю , так что критика приветствуется только пожалуйста не унижайте) спасибо.
Помогите пожалуйста разобраться с клавиатурой для бота в Telegram , пытаюсь запустить в боте клавиатуру которая должна находится под сообщением не получается.
заранее спасибо.

Python:
import telebot

import config

import random





from telebot import types



bot = telebot.TeleBot(config.TOKEN)



@bot.message_handler(commands=['start'])

def welcome(message):

    sti = open('static/sticker.webp', 'rb')

    bot.send_sticker(message.chat.id, sti)



    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)

    item1 = types.KeyboardButton("Задать Вопрос")

    item2 = types.KeyboardButton("Написать оператору")

  



    markup.add(item1,item2)



    bot.send_message(message.chat.id, "Привет,{0.first_name}!\nЯ - <b>{1.first_name}</b>, бот созданый для помощи и приятной игры".format(message.from_user, bot.get_me()),

        parse_mode='html', reply_markup=markup)



@bot.message_handler(content_types=['text'])

def lalala(message):

    if message.chat.type == 'private':

        if message.text == 'Задать Вопрос':

            bot.send_message(message.chat.id, 'Выбери тип вопроса')



        elif message.text == 'Написать Оператору':



            markup = types.InlineKeyboardMarkup(row_width=2)

            item1 = types.InlineKeyboardButton("Проблемы с регестрацией",callback_data='norm')

            item2 = types.InlineKeyboardButton("Проблемы с модом",callback_data='bad')



            bot.send_message(message.chat.id, 'Duel@get.com', reply_markup=markup)

        else:

            bot.send_message(message.chat.id, 'Duel@get.com')

  

@bot.callback_query_handler(func=lambda call: True)

def callback_inline(call):

    try:

        if call.message:

            if call.data == 'norm':

                bot.send_message(call.message.chat.id, 'Перейдите по ссылке ?')

            elif call.data == 'bad':

                bot.send_message(call.message.chat.id, 'какие проблемы!!! ?')



            # remove inline buttons

            bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="? ссылка",

                reply_markup=None)



            # show alert

            bot.answer_callback_query(callback_query_id=call.id, show_alert=True,

                text="1")

    except Exception as e:

        print(repr(e))

              



bot.polling(none_stop=True)
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
В вашем коде при нажатие на кнопку Написать оператору не показывает клавиатуру по двум причинам:
- во-первых потому что код не заходит в условие elif message.text == 'Написать Оператору':, так как там фраза Написать Оператору с большой буквы
- во-вторых потому что кнопки инлайновой клавиатуры не добавлены к самой клавиатуре, нужно после кнопок добавить строку:
Python:
markup.add(item1, item2)
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Давай попробуем начать с простого: с прикрепленной темы Как правильно составить вопрос и не получить бан?
Там в 3 пункте написано, как вставлять код. Если непонятно, зачем это нужно - попробуй скопировать свой код отсюда, вставить его в файл, и посмотри, что получится.
Затем объясни, что такое "не получается". В питоне нет такого, бывает "ожидаю такое поведение, а получаю такое".
 

12123212

Новичок
Пользователь
Сен 24, 2020
3
0
1
Все исправил как указано.
 

12123212

Новичок
Пользователь
Сен 24, 2020
3
0
1
Все заработало, спасибо.
 

Форум IT Специалистов