Работа с клавиатурой
Все методы находятся в vk_api модуле.
ВАЖНО! Если у параметра в методе указано значение по умолчанию, значит этот параметр не обязательный
Методы
buttonText($text, $color, $payload = null)
- Обычная кнопка- $color - цвет кнопки, может принимать 4 значения: white, blue, green, red
- $payload - полезная нагрузка кнопки, которая возвращается на сервер при нажатии. может принимать null или ассоциативный Юмассив(причем даже с несколькими значениями, например можно даже запихивать кнопки в кнопки)
buttonApp($text, $app_id, $owner_id = null, $hash = null, $payload = null)
- кнопка открытия vk apps приложения- $app_id - id приложения
- $owner_id - id группы. Нужен в том случае, когда приложение нужно запустить от лица группы, например VkCoin или PixelBattle
- $hash - хэш для навигации в приложении, будет передан в url приложения после символа #. Можно открывать сразу нужные страниицы
- $payload - идентичен как и в первом методе
buttonLocation($payload = null)
- кнопка отправки текущего местонахождение. Результат приходит в обычном messages_new- $payload - идентичен как и в первом методе
buttonPayToGroup($group_id, $amount, $description = null, $data = null, $payload = null)
- оплата товара. Платеж приходит в группу. Данная кнопка занимает всю ширину строки- $group_id - id группы, в которую придет платеж. Можно даже чужую. Но в настройках группы должны быть активированы платежи
- $amount - целове число в рублях.
- $description - описание платежа
- $data - словарь с произвольными параметрами. Пока еще не понял, зачем он нужен
- $payload - идентичен как и в первом методе
buttonPayToUser($user_id, $amount, $description = null, $payload = null)
- оплата товара. Платеж приходит пользователю. Данная кнопка занимает всю ширину строки- $user_id - id пользователя, которому придет платеж. Возможно нужно иметь vk pay кошелек, чтобы принимать.
- $amount - целове число в рублях
- $description - описание платежа
- $payload - идентичен как и в первом методе
buttonDonateToGroup($group_id, $payload = null)
- нефиксированный перевод группе. Думаю применяется для донатов или покупки внутриигровой валюты в необходимом количестве. Данная кнопка занимает всю ширину строки- $group_id - id группы, в которую придет платеж. Можно даже чужую. Но в настройках группы должны быть активированы платежи
- $payload - идентичен как и в первом методе
buttonDonateToUser($user_id, $payload = null)
- нефиксированный перевод пользователю. Думаю применяется для донатов или покупки внутриигровой валюты в необходимом количестве. Данная кнопка занимает всю ширину строки- $user_id - id пользователя, которому придет платеж. Возможно нужно иметь vk pay кошелек, чтобы принимать
- $payload - идентичен как и в первом методе
Пример создания и отправки кнопок:
Кнопки - это массив с массивами. Если во внутреннем массиве 1 переменная, значит она занимает всю строку. Если N - то они делят строку на равные части, но не более 4 в одной строке.
$vk = vk_api::create(VK_KEY, '5.101');
$location = $vk->buttonLocation();
$app = $vk->buttonApp('Играть', 6840293);
$pay_user = $vk->buttonPayToUser(89846036, 100, 'Оплата покупки',['command' => 'pay']);
$text1 = $vk->buttonText('Negative', 'red', ['color' => 'red']);
$text2 = $vk->buttonText('Positive', 'green', ['color' => 'green']);
$text3 = $vk->buttonText('Primary', 'blue', ['olololo' => 'ebobo?', 'color' => 'green']);
$text4 = $vk->buttonText('Secondary', 'white');
$vk->sendButton(89846036, 'Лови кнопки', [[$location],[$app],[$pay_user],[$text1, $text2, $text3, $text4]]);
Данный пример выведет такие кнопки
Удаление кнопок (клавиатуры) из диалога:
Обращаем ваше внимание, что если передать параметр $one_time = True (см. отправка клавиатуры), клавиатура исчезнет после нажатия на одну из кнопок.
Для того, что-бы вручную выключить клавиатуру, нужно выполнить следующий запрос:
$id // ID пользователя
$message // Сообщение, отправляемое при удалении клавиатуры
$vk->sendButton($id, $message);