如何使用ReplyKeyboardButton解决问题?

时间:2019-08-23 11:15:28

标签: python python-telegram-bot

我对方法ReplyKeyboardButton有问题。

我尝试从航标图中连接模块,我尝试从远程机器人获取类型,我尝试仅使用一个模块(远程机器人)

import telebot
#from aiogram.types import ReplyKeyboardRemove, \
#ReplyKeyboardMarkup, KeyboardButton, \
    #InlineKeyboardMarkup, InlineKeyboardButton

token = 'mytoken'
bot = telebot.TeleBot(token)

#keyboard1 = telebot.types.ReplyKeyboardMarkup()
#keyboard1.row('Категории', 'Купить приватку', 'Что дает приватка?')
button_qiwi = ReplyKeyboardButton('QIWI')
button_sber = ReplyKeyboardButton('Сбербанк')
button_categories = ReplyKeyboardButton('Категории')
button_privat = ReplyKeyboardButton('Купить приватку')
button_whatis = ReplyKeyboardButton('Что дает приватка?')
button_cancel = ReplyKeyboardButton('Назад')

markup_start = ReplyKeyboardMarkup().row(
    button_categories, button_privat, button_whatis
)

markup_pay = ReplyKeyboardMarkup().row(
    button_qiwi, button_sber, button_cancel
)


@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Привет! Чтобы ты взаимодействовал с     ботом, тебе нужно зайти в кнопки.', reply_markup=markup_start)

@bot.message_handler(content_types=['sticker'])
def sticker_id(message):
    print(message)

@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'категории':
        bot.send_message(message.chat.id, '123')
    elif message.text.lower() == 'купить приватку':
        bot.send_sticker(message.chat.id, 'CAADAgADZgkAAnlc4gmfCor5YbYYRAI')
        bot.send_message(message.chat.id, 'Хорошо! Приватка стоит 450 рублей. Оплатить можно через QIWI и через Сбербанк. Как удобней?', reply_markup = markup_pay)
        if message.text.lower() == 'Сбербанк':
            bot.send_text(message.chat.id, '123')
        if message.text.lower() == 'QIWI':
            bot.send_text(message.chat.id, '123')
        elif message.text.lower() == 'Назад':
            bot.send_sticker(message.chat.id,'',reply_markup = markup_start)
        else:
            bot.send_message(message.chat.id, 'Ой! Что-то пошло не так((')
    elif message.text.lower() == 'что дает приватка?':
        bot.send_message(message.chat.id, 'Доступ ко всем категориям, Уникальный контент')
    else:
        bot.send_message(message.chat.id, 'Неизвестная команда')

bot.polling()

这是输出:

  

回溯(最近通话最近):       在第11行的文件“ C:/Users/yaros/Desktop/bot/bot.py”         button_qiwi = ReplyKeyboardButton('QIWI')     NameError:名称“ ReplyKeyboardButton”未定义

以退出代码1完成的过程。

1 个答案:

答案 0 :(得分:0)

好吧,您需要像markup = types.ReplyKeyboardRemove(),而您只有markup_pay = ReplyKeyboardMarkup().row。我的意思是您忘记了有关types.的信息,而您需要from telebot import types