Как я могу добавить пользовательскую клавиатуру на своего бота Telegram? - PullRequest
0 голосов
/ 03 сентября 2018

Вот мой бот-код Telegram:

import time, datetime
import telepot
from telepot.loop import MessageLoop

now = datetime.datetime.now()

def action(msg):
    chat_id = msg['chat']['id']
    command = msg['text']

    print('Received: %s' % command)

    if command == '/start':
        telegram_bot.sendMessage (chat_id, str("Hi!"))
        telegram_bot.sendMessage(chat_id, str(now.hour)+str(":")+str(now.minute))
    elif command == 'Time':
        telegram_bot.sendMessage(chat_id, str(now.hour)+str(":")+str(now.minute))
    elif command == 'Logo':
        telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
    elif command == 'File':
        telegram_bot.sendDocument(chat_id, document=open('/home/pi/sendbot.py'))
    elif command == 'Audio':
        telegram_bot.sendAudio(chat_id, audio=open('/home/pi/test.mp3'))

telegram_bot = telepot.Bot('MY-BOT-TOKEN')
print((telegram_bot.getMe()))

MessageLoop(telegram_bot, action).run_as_thread()
print('Up and Running....')

while 1:
    time.sleep(10)

Я хочу добавить пользовательскую клавиатуру для этого бота, которая будет иметь 4 кнопки с именами Time, Logo, File и Audio.

В качестве примеров. Если я нажму кнопку Time вместо того, чтобы вводить «Время», она покажет мне время. Если я нажму кнопку Logo вместо того, чтобы напечатать ее, она отправит мне изображение.

1 Ответ

0 голосов
/ 03 сентября 2018

Есть хорошие примеры в проекте Telepot's Github . проверить их, плз.

...
    markup = ReplyKeyboardMarkup(keyboard=[['Time', KeyboardButton(text='Logo')],["File", "Audio"]])
    if command == '/start':
        telegram_bot.sendMessage (chat_id, str("Hi! Which one do you want? choose from the below keyboard buttons."), reply_markup=markup)
        telegram_bot.sendMessage(chat_id, str(now.hour)+str(":")+str(now.minute))
...
...