labile/vk-keyboard
Composer 安装命令:
composer require labile/vk-keyboard
包简介
package for converting vk api keyboard objects
README 文档
README
Установка
Перед установкой рекомендую ознакомиться с последними обновлениями api вконтакте, а также прочитать про типы кнопок, клавиатур, каруселей и особенностей работы с api вконтакте. Документация клавиатур
$ composer require labile/vk-keyboard
Использование
На момент создания библиотеки api вконтакте поддерживает 3 типа клавиатур, а именно inline, обычная клавиатура и карусели
Обычные
Inline
Карусели
Чтобы создать такие объекты клавиатур воспользуйтесь фасадом-конструктором этих объектов.
Для создания обычной клавиатуры
<?php require '../vendor/autoload.php'; use Astaroth\VkKeyboard\Facade; use Astaroth\VkKeyboard\Contracts\Keyboard\Button\FactoryInterface; use Astaroth\VkKeyboard\Object\Keyboard\Button\Text; $keyboard = Facade::createKeyboardBasic(function (FactoryInterface $factory) { return [ [ $factory->location([]), ], [ $factory->text('Текстовая кнопка', ['button' => 1], Text::COLOR_RED), $factory->callback('callback кнопка', ['button' => 2], Text::COLOR_BLUE), $factory->link('Кнопка с ссылкой', 'https://github.com/Sally-Framework/vk-keyboard', []), ], [ $factory->pay('action=transfer-to-group&group_id=1&aid=10') ], [ $factory->app('Кнопка приложения', 6979558, '-181108510', 'sendKeyboard') ] ]; });
Фасад сконвертирует клавиатуру в json, согласно требованиям api вконтакте
{
"one_time": true,
"buttons": [
[
{
"action": {
"payload": "[]",
"type": "location"
}
}
],
[
{
"color": "negative",
"action": {
"payload": "{\"button\":1}",
"label": "Текстовая кнопка",
"type": "text"
}
},
{
"color": "primary",
"action": {
"payload": "{\"button\":2}",
"label": "callback кнопка",
"type": "callback"
}
},
{
"action": {
"link": "https:\/\/github.com\/Sally-Framework\/vk-keyboard",
"label": "Кнопка с ссылкой",
"payload": "[]",
"type": "open_link"
}
}
],
[
{
"action": {
"hash": "action=transfer-to-group&group_id=1&aid=10",
"type": "vkpay"
}
}
],
[
{
"action": {
"app_id": 6979558,
"owner_id": "-181108510",
"hash": "sendKeyboard",
"label": "Кнопка приложения",
"type": "open_app"
}
}
]
]
}
Если отправить такую клавиатуру, то она будет отображена в таком виде

Для Inline клавиатуры
<?php require '../vendor/autoload.php'; use Astaroth\VkKeyboard\Facade; use Astaroth\VkKeyboard\Contracts\Keyboard\Button\FactoryInterface; use Astaroth\VkKeyboard\Object\Keyboard\Button\Text; $keyboard = Facade::createKeyboardInline(function (FactoryInterface $factory) { return [ [ $factory->location([]), ], [ $factory->text('Текстовая кнопка', ['button' => 1], Text::COLOR_RED), $factory->callback('callback кнопка', ['button' => 2], Text::COLOR_BLUE), $factory->link('Кнопка с ссылкой', 'https://github.com/Sally-Framework/vk-keyboard', []), ], [ $factory->pay('action=transfer-to-group&group_id=1&aid=10') ], [ $factory->app('Кнопка приложения', 6979558, '-181108510', 'sendKeyboard') ] ]; });
{
"inline": true,
"buttons": [
[
{
"action": {
"payload": "[]",
"type": "location"
}
}
],
[
{
"color": "negative",
"action": {
"payload": "{\"button\":1}",
"label": "Текстовая кнопка",
"type": "text"
}
},
{
"color": "primary",
"action": {
"payload": "{\"button\":2}",
"label": "callback кнопка",
"type": "callback"
}
},
{
"action": {
"link": "https:\/\/github.com\/Sally-Framework\/vk-keyboard",
"label": "Кнопка с ссылкой",
"payload": "[]",
"type": "open_link"
}
}
],
[
{
"action": {
"hash": "action=transfer-to-group&group_id=1&aid=10",
"type": "vkpay"
}
}
],
[
{
"action": {
"app_id": 6979558,
"owner_id": "-181108510",
"hash": "sendKeyboard",
"label": "Кнопка приложения",
"type": "open_app"
}
}
]
]
}
Для каруселей
<?php require '../vendor/autoload.php'; use Astaroth\VkKeyboard\Facade; use Astaroth\VkKeyboard\Contracts\Keyboard\Button\FactoryInterface as ButtonFactoryInterface; use Astaroth\VkKeyboard\Contracts\Template\Carousel\Element\FactoryInterface as CarouselElementInterface; $templateWithOpenPhoto = Facade::createCarousel(function (CarouselElementInterface $elementFactory, ButtonFactoryInterface $buttonFactory) { return [ $elementFactory->openPhoto([ $buttonFactory->location(['button' => 'location']), $buttonFactory->pay('action=transfer-to-group&group_id=1&aid=10'), $buttonFactory->link('Кнопка с ссылкой', 'https://github.com/Sally-Framework/vk-keyboard', []), ], 'Карусель Open Photo', 'По нажатию у вас откроется картинка', '-109837093_457242809'), $elementFactory->openPhoto([ $buttonFactory->location(['button' => 'location']), $buttonFactory->pay('action=transfer-to-group&group_id=1&aid=10'), $buttonFactory->link('Кнопка с ссылкой', 'https://github.com/Sally-Framework/vk-keyboard', []), ], 'Карусель Open Photo', 'По нажатию у вас откроется картинка', '-109837093_457242809'), $elementFactory->openPhoto([ $buttonFactory->location(['button' => 'location']), $buttonFactory->pay('action=transfer-to-group&group_id=1&aid=10'), $buttonFactory->link('Кнопка с ссылкой', 'https://github.com/Sally-Framework/vk-keyboard', []), ], 'Карусель Open Photo', 'По нажатию у вас откроется картинка', '-109837093_457242809'), ]; });
{
"elements": [
{
"buttons": [
{
"action": {
"payload": "{\"button\":\"location\"}",
"type": "location"
}
},
{
"action": {
"hash": "action=transfer-to-group&group_id=1&aid=10",
"type": "vkpay"
}
},
{
"action": {
"link": "https:\/\/github.com\/Sally-Framework\/vk-keyboard",
"label": "Кнопка с ссылкой",
"payload": "[]",
"type": "open_link"
}
}
],
"title": "Карусель Open Photo",
"description": "По нажатию у вас откроется картинка",
"photo_id": "-109837093_457242809",
"action": {
"type": "open_photo"
}
},
{
"buttons": [
{
"action": {
"payload": "{\"button\":\"location\"}",
"type": "location"
}
},
{
"action": {
"hash": "action=transfer-to-group&group_id=1&aid=10",
"type": "vkpay"
}
},
{
"action": {
"link": "https:\/\/github.com\/Sally-Framework\/vk-keyboard",
"label": "Кнопка с ссылкой",
"payload": "[]",
"type": "open_link"
}
}
],
"title": "Карусель Open Photo",
"description": "По нажатию у вас откроется картинка",
"photo_id": "-109837093_457242809",
"action": {
"type": "open_photo"
}
},
{
"buttons": [
{
"action": {
"payload": "{\"button\":\"location\"}",
"type": "location"
}
},
{
"action": {
"hash": "action=transfer-to-group&group_id=1&aid=10",
"type": "vkpay"
}
},
{
"action": {
"link": "https:\/\/github.com\/Sally-Framework\/vk-keyboard",
"label": "Кнопка с ссылкой",
"payload": "[]",
"type": "open_link"
}
}
],
"title": "Карусель Open Photo",
"description": "По нажатию у вас откроется картинка",
"photo_id": "-109837093_457242809",
"action": {
"type": "open_photo"
}
}
],
"type": "carousel"
}
Примеры
Более детальные примеры представлены здесь.
labile/vk-keyboard 适用场景与选型建议
labile/vk-keyboard 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 242 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 08 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 labile/vk-keyboard 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 labile/vk-keyboard 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 242
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-08-18




