This repository was archived by the owner on Oct 4, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathkeyboard.py
54 lines (43 loc) · 2.23 KB
/
keyboard.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-
import vk_requests
from vbio import VkBot, LongPollClient
from vbio.types import VkKeyboardMarkup, VkKeyboardButton, VkColor
api = vk_requests.create_api(service_token='<токен группы>')
bot = VkBot(api=api)
handler = LongPollClient(bot)
@bot.message_handler()
def no_command(m):
# Разметка клавиатуры
# stack_size указывает максимальное кол-во кнопок в ряду;
# используется методом VkKeyboardMarkup.
keyboard = VkKeyboardMarkup(stack_size=2)
# Добавить ряд с одной кнопкой
keyboard.add(VkKeyboardButton(
label='Нажми меня!',
color=VkColor.POSITIVE,
payload={'command': 'first_button'}
))
# Добавить ряд из нескольких кнопок (максимум 4)
keyboard.row(
VkKeyboardButton('Кнопка #1 из второго ряда!',
color='default', # Можно использовать как VkColor так и текст
payload={'command': 'second_button'}),
VkKeyboardButton('Кнопка #2 из второго ряда!',
color='primary',
payload={'command': 'second_button'}),
)
# VkKeyboardMarkup.stack() будет добавлять кнопку на текущую строку или
# автоматически переносить на следующую, если число кнопок на строке достигло
# лимита stack_size
for i in range(3):
b = VkKeyboardButton('Кнопка #3!',
color=VkColor.NEGATIVE,
payload={'command': 'third_button'})
keyboard.stack(b) # Можно добавить кнопку так
# Чтобы сериализовать клавиатуру вызовите ее снова: keyboard()
# keyboard работать не будет!
m.answer(message='Тест клавиатуры!\n'
'Payload вашего сообщения: {}'.format(m.payload),
keyboard=keyboard())
if __name__ == '__main__':
handler.run()