Как сделать клавиатуру в вк боте на питоне
После создания сообщества в ВК проследуйте по этому пути:
Писать будем используя Сallback api(отправляет каждое действие в сообществе по отдельности на сервер). Поэтому его тоже следует настроить. Переходим в
Теперь вам понадобится сервер для хостинга своего бота. Вы можете использовать бесплатные хостинги, например Hostinger или 000webhost.
Если вы будете использовать дешевые/бесплатные хостинги, то вероятнее всего на них будет отключен Curl(вы не сможете отправлять ботом медиа файлы, только текст), и его нельзя включить. Если у вас свой сервер или хороший купленный, то вам надо подключить Curl для полноценной работы бота из нашего примера.
В блоке CONFIG укажите свой ключ доступа сообщества и ключ для подтверждения сервера. Так же укажите директорию на сервере где у вас будут храниться картинки.
Теперь вы знаете как работает код, и можете подстроить его под себя.
Заливайте свой скрипт и библиотеку на сервер. Теперь заходим в настройках во вкладку Callback API, вписываем в поле адреса путь до своего скрипта и жмем подтвердить. Если вы все сделали правильно, то рядом с адресом появится зеленая галочка.
Ну вот и все, у вас теперь тоже есть бот с клавиатурой.
ХедХантер и кладмены
На днях листал ХХ.
Штук 5 вакансий курьера. От найка и адидас до ксиаоми и секс-шопа . Вакансии в самом верху в топе, смотрело со мной около 150 человек. Оклад 15к в неделю и 350 за точку. Нормально так для курьера?
В итоге все эти вакансии - кладмена. Работодатель зовёт в телегу.
Мне просто интересно , ХХ настолько похуй, что у него там творится? Очевидно вакансия левая, ибо заработок нереальный для курьера. Где пожаловаться не нашёл, выливаю свой гнев сюда. Вообще подозреваю, что все все знают.
Мотивации пост
. а в пустыне она вообще бесценна.
Рамзан Кадыров замечен в сепаратизме?
Как все уже знают, Кадыров пригрозил силой отнять у ингушей их земли.
Как это: часть страны решила отобрать территорию у другой части этой же страны?
Интересно, почему на него не заводят дело за призывы к силовому захвату или отчуждение территории?
А ведь это сепаратизм. Развал СССР тоже начался с взаимных претензий его республик. Если какой-то регион России, собирается силой захватить другой регион, то это уже не субьект Российской Федерации. Это самостоятельная государственная единица.
Как вы считаете, можно ли расценивать действия Рамзана Кадырова как прямой отказ подчиняться действущему законодательству России и проявлением сепаратизма?
Прошу юридической помощи, напали чеченцы в метро
Здравствуйте, я очень сомневался писать пост или нет, но сил уже нет бороться в одиночку с нашей правоохранительной системой. 30 августа я ехал на работу к 14:00, на выходе из метро Юго-Восточная на меня напали 2 чеченца ( https://www.m24.ru/shows1/14/308198 сюжет на Москва 24, правда они вырезали специально тот кусок, когда я отмахивался, разрывая дистанцию, уже после нескольких минут избиения в голову и назвали это "дракой", хотя ни одного удара я не нанес), я подбежал к службе безопасности метрополитена, одна из сотрудниц сразу убежала, вторая стояла и смотрела как меня избивают, ничего не делая. В итоге мне сломали нос и нанесли множественные повреждения в области головы. Когда они меня били они орали, что они из Чечни и всех русских вы**ут и ничего им не сделают, явный состав 282 статьи УК РФ, однако в итоге им инкриминировали лишь 115. После их задержания, когда я ждал скорую, полицейская сказала, что у них был нож и они орали, что воевали против русских в чеченскую войну, а также что они находятся под действием наркотиков (в таганском отделении опер потом также сказал). После меня отвезли в ГКБ им. Пирогова, в приемное отделение к нейрохирургу, где я пробыл более 6 часов, как в последствии выяснилось, принял со скорой меня санитар, а заключение выдал медбрат. В итоге в заключении прописаны препараты, которые мне якобы ввели, но их не вводили + заключение противоречит в некоторых моментах самому себе. Госпитализировать меня отказались, хотя по словам врачей скорой должны были госпитализировать на 10-14 дней. На следующий день я пошел в травмпункт рядом с домом, чтобы снять всё-таки побои, но травматолог сказал, что поставил бы ушиб мягких тканей только в случае наличия разрыва кожи (хотя это уже должно быть рваной раной, в моём понимании).
На данном этапе мне не дали ознакомиться с материалами уголовного дела, нож по словам дознавательницы в деле не фигурирует, я просил ознакомить меня с записями с камер видеонаблюдения, мне было отказано, а также с дозоров полицейских, тоже было отказано. Дознавательница не присылает никаких повесток по следственным действиям, я посмотрел, её действия нарушают 164, 188 и 192 статьи УПК РФ, когда на очередной встрече я хотел написать заявление на отвод дознавателя. Я думаю, что дознавательница ангажирована к этим чеченцам и/или диаспоре. При первой встрече, назначенной на 10:00, она отказалась меня принять к оговоренному по телефону (повестки не было) времени, а когда из кабинета выходил другой сотрудник, я слышал, как она говорит кому-то из своих "мариную **анного терпилу".
Прошу оказать юридическую помощь, что делать с этой дознавательницей? Что делать с врачами, которые отказались меня принимать и госпитализировать? Мне назначена очная ставка на 20 ноября, но я боюсь туда идти, потому что возможен вариант, что эти чеченцы придут туда с оружием.
Подбегая к сотрудникам безопасности метро, я включил камеру, думал это их вразумит, я стал кричать, что они хотят меня убить, но люди даже не обернулись. У меня сохранился кусочек видео, до того момента, как один из нападавших выхватил телефон (когда он выхватил телефон, то прервал запись) у меня из рук и начал меня избивать.
Клавиатура представляет собой массив массивов, то есть таблицу, у которой ячейки — это кнопки. У всех кнопок в рамках одной строки одинаковый размер, и они заполняют 100% ширины. Высота всех кнопок — константа. Текст отображается по центру кнопки и обрезается, если не помещается полностью при текущем размере экрана.
<
"one_time":false,
"buttons":[
[
<
"action": <
"type":"location",
"payload":""
>
>
],
[
<
"action": <
"type":"open_app",
"app_id":6232540,
"owner_id":-157525928,
"hash":"123",
"label":"LiveWidget"
>
>
],
[
<
"action": <
"type":"vkpay",
"hash":"action=transfer-to-group&group_id=181108510&aid=10"
>
>
],
[
<
"action": <
"type":"text",
"payload":"",
"label":"Red"
>,
"color":"negative"
>,
<
"action": <
"type":"text",
"payload":"",
"label":"Green"
>,
"color":"positive"
>,
<
"action": <
"type":"text",
"payload":"",
"label":"Blue"
>,
"color":"primary"
>,
<
"action": <
"type":"text",
"payload":"",
"label":"White"
>,
"color":"secondary"
>
]
]
>
JSON-объект клавиатуры передается строкой в параметре keyboard в методе messages.send с последней версией API. Структура объекта приводится тут.
ВАЖНО! Более свежая версия статьи находится здесь
Оглавление:
Создание и настройка сообщества
Настройка сервера
Теперь вам понадобится сервер для хостинга своего бота. Вы можете использовать бесплатные хостинги, например 000webhost.
Если вы будете использовать дешевые/бесплатные хостинги, то вероятнее всего на них будет отключен cURL(вы не сможете отправлять ботом медиа файлы, только текст), и его нельзя включить. У 000webhost все с этим нормально, можете использовать . Если у вас свой сервер или хороший купленный, то вам надо подключить cURL для полноценной работы бота из нашего примера.
Как работает Callback API и keyboard
Работа с библиотекой
Полный код бота на PHP
Теперь перейдем собственно к коду, где прокомментирована почти каждая строка.
Данный код поддерживается на PHP 5.6+
В блоке CONFIG укажите свой ключ доступа сообщества, ключ для подтверждения сервера а так же выбранную вами версию API.
Теперь вы знаете как работает код, и можете подстроить его под себя.
Стартуем!
Заливайте свой скрипт и библиотеку на сервер. Теперь заходим в настройках во вкладку Callback API, вписываем в поле адреса путь до своего скрипта и жмем подтвердить. Если вы все сделали правильно, то рядом с адресом появится зеленая галочка.
Вопрос: У меня все работает, но не отправляются картинки.
Ответ: Проверьте, добавили ли вы папку img с изобажениями. Так же, возможно вы используете сервер, где не поддерживается cURL.
Вопрос: Я изменил версию на 5.78 или любую другую. У меня ничего не работает.
Ответ: Используйте другие версии api кроме 5.80 на свой страх и риск. Например на версии 5.78 от ВК приходят другие названия переменных(например вместо object->text идет object->body), поэтому скрипт крашится. Все изменения api ищите здесь.
Остались еще какие-то вопросы? Пишите их нам в группу, обязательно поможем, если связано с примером из статьи или библиотекой.
Ну вот и все, у вас теперь тоже есть бот с клавиатурой 🙂
Делитесь этими знаниями с вашими друзьями и не забывайте подписаться на нашу группу ВК, там будет еще много интересного!
.
9го июля ВК выкатил callback кнопки для чат-ботов. Телеграм напрягся сделал это в 199. давно. Самая популярная библиотека для разработки чат-ботов под ВК на Python — vk_api (от разработчика python273). Ввиду того, что свежие правки в нее вносятся медленно, я взял на себя смелось сделать форк, дополнить его и описать небольшой пример использования.
Что сделано относительно исходной v11.80?
Обновлены ограничения по клавиатуре (в соответствии с изменениями в API):
- не более 5 кнопок в строке (было 4);
- не более 10 и 6 строк для стандартного и inline представления соответственно (было 10 и там, и там);
- Default кнопка переименована в Secondary.
- новый тип события "message_event" (клик по кнопке);
- новый метод "создать callback кнопку";
- добавлен example (анимация работы и код будут приведены ниже).
Виды callback кнопок
Как установить модифицированную библиотеку?
Код примера по частям
Импорты. Думаю, с ними все понятно.
Настройка и запуск бота. Указываем идентификатор и longpoll-токен группы.
Для использования кнопки "открыть ВК приложение" указываем идентификатор приложения и его владельца.
Создаем два меню.
В первом меню — все 4 упомянутых выше действия кнопок.
Во втором — только кнопка "назад", возвращающая предыдущее меню.
.
Запускаем long poll.
Как выглядит процесс
Заключение
Тот факт, что callback-кнопки наконец-то появились в ВК — радует. И пусть пока они работают только под мобильными приложениями, а в браузере — не поддерживают. Пусть в браузере inline-кнопки все еще не выравнивается по ширине. Все же их наличие хоть в каком-то виде — искренне радует меня, как разработчика коммерческого телеграмм-бота.
Теперь появилась возможность реализовать ВК-интерфейс для своего телеграм-бота, где в разы больше жителей РФ, т.е целевой аудитории. Этот факт заставляет мириться со всеми перечисленными неудобствами и минусами, и идти к горе, раз она не хочет идти к Магомеду. На скриншоте ниже реализация одного и того же интерфейса через callback-кнопки: справа в Телеграм, и слева — ВКонтакте.
.
Надеюсь, кому-то этот краткий обзор поможет начать использовать callback кнопки в своих ботах. Pull-request автору библиотеки отправлен.
Читайте также: