Клавиатура VK API, PHP

118
15 октября 2019, 18:00

не могу разобраться с клавиатурой ВК. Документация ВК
Как её реализовать? Искал в сети примеры/объяснения так не нашёл для PHP.

switch($user_msg){
//=======================================================
    case "Скинь котика":
        $file = file_get_contents($config['album_1'], LOCK_EX);
        $photos_all = explode("\n", $file);
        $mp->photoSend($photos_all[mt_rand(0, count($photos_all) - 1)], $user_id, $access_token);
            break;
//=======================================================
    case "Скинь рыбку":
        $file = file_get_contents($config['album_2'], LOCK_EX);
        $photos_all = explode("\n", $file);
        $mp->photoSend($photos_all[mt_rand(0, count($photos_all) - 1)], $user_id, $access_token);
            break;
//=======================================================
    case "Скинь собачку":
        $file = file_get_contents($config['album_3'], LOCK_EX);
        $photos_all = explode("\n", $file);
        $mp->photoSend($photos_all[mt_rand(0, count($photos_all) - 1)], $user_id, $access_token);
            break;
//=======================================================
    case "Скинь птичку":
        $file = file_get_contents($config['album_4'], LOCK_EX);
        $photos_all = explode("\n", $file);
        $mp->photoSend($photos_all[mt_rand(0, count($photos_all) - 1)], $user_id, $access_token);
            break;
}

Как добавить в данный код клавиатуру (что бы у пользователя появилось 4 варианта (команды) при нажатии на который отправлял бы соответствующее изображение.

Answer 1

Как говорится "Хочешь сделать хорошо, сделай это сам"… Вот как я реализовал клавиатуру для бота в ВК. API 5.92

class message_keyboard{  
    public function send($msg, $keyboard, $user_id, $access_token){ 
        $request_params = array(
            "user_id" => $user_id,
            "random_id" => "0",
            "message" => $msg,
            "keyboard" => json_encode($keyboard, JSON_UNESCAPED_UNICODE),
            "access_token" => $access_token,
            "v" => "5.92");
        $get_params = http_build_query($request_params);
        file_get_contents("https://api.vk.com/method/messages.send?".$get_params);}}
$mk = new message_keyboard();
switch($data->type){
    case "confirmation":
        echo $confirmation_token;
        break;
    case "message_new":
        switch($message){
            case "Овощи?":
                $keyboard = [
                    "one_time" => false,
                    "buttons" => [[
                    ["action" => [
                    "type" => "text",
                    "payload" => '{"button": "1"}',
                    "label" => "Фрукты?"],
                    "color" => "default"],
                ]]];
$mk->send("Картоха", $keyboard, $user_id, $access_token);
                break;
            case "Фрукты?":
                $keyboard = [
                    "one_time" => false,
                    "buttons" => [[
                    ["action" => [
                    "type" => "text",
                    "payload" => '{"button": "1"}',
                    "label" => "Овощи?"],
                    "color" => "default"],
                ]]];
$mk->send("ЯблОчко =)", $keyboard, $user_id, $access_token);
                break;
}
READ ALSO
Как выводить данные из бд с условие в php? [закрыт]

Как выводить данные из бд с условие в php? [закрыт]

Как делать с условием я знаю, НО, как сделать чтоб с условием, ну как объяснить Короче вот пример того что мне нужно

119
Не получается работать с json строкой как с массивом [дубликат]

Не получается работать с json строкой как с массивом [дубликат]

Данный вопрос является точным дубликатом:

115
Апач отображает пхп код вместо того чтобы его исполнять

Апач отображает пхп код вместо того чтобы его исполнять

Поставил в виртуалке CentOS 7, в него lamp (httpd и mariadb как обычно, а php 72 из remirepo)

85
Как добавить товары из корзины Woocommerce в форму?

Как добавить товары из корзины Woocommerce в форму?

На сайте есть форма, которая находится в корзине - ссылка на сайтКак сделать так, чтобы данные из формы захватывали каталог товаров из корзины...

110