Задать вопрос
@maksim_fix
Junior PHP developer

При добавлении кнопок в чат-боте VK возникает ошибка?

Хочу опробовать кнопки в ВК. С начала сделал простую отправку сообщения по гайду:
public function send_message($peer_id,$text){
        $request_params = [
            'message' => $text,
            'peer_id' => $peer_id,
            'access_token' => $this->token,
            'v' => '5.50',
        ];
        $get_params = http_build_query($request_params);
        file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
    }


Все работает, ошибок нет, но если я добавляю в данный массив keyboard:
$request_params = [
            'message' => $text,
            'peer_id' => $peer_id,
            'access_token' => $this->token,
            'v' => '5.50',
            'keyboard' => [
                'one_time' => false,
                'buttons' => [
                    [
                        'action' => [
                            'type' => 'text',
                            'payload' => '{\"button\": \"1\"}',
                            'label' => 'negative'
                        ],
                        'color' => 'negative'
                    ]
                ]
            ]
        ];

То ничего не работает, а php ругается на file_get_contents();
[2019-12-21 15:09:02] local.ERROR: file_get_contents(https://api.vk.com/method/messages.send?{"message":"321","peer_id":433199225,"access_token":"56ec33373a94029f6d42279957c1aa8c76bec4fd0fd4cc822abc9f8cd54f7b96a213600c4d89c22042cd6","v":"5.50","keyboard":{"one_time":false,"buttons":[{"action":{"type":"text","payload":"{\\\"button\\\": \\\"1\\\"}","label":"negative"},"color":"negative"}]}}): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
{"exception":"[object] (ErrorException(code: 0): file_get_contents(https://api.vk.com/method/messages.send?{"message":"321","peer_id":433199225,"access_token":"56ec33373a940rew111329f6d423131279957c1aa8c31376bec4fd0f3131d4cc822abc9f8cd54f7b96a213600c4d89c22042cd6","v":"5.50","keyboard":{"one_time":false,"buttons":[{"action":{"type":"text","payload":"{\\\\\\"button\\\\\\": \\\\\\"1\\\\\\"}","label":"negative"},"color":"negative"}]}}): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
at /home/riimukrg/shop.anonask.ru/app/VKAPI.php:55)
Пробовал менять http_build_query на json_encode - такая же проблема
  • Вопрос задан
  • 134 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RozmarinUS
YII2, PHP, React, TypeScript, Python hater
Клавиатура работает только на версии 5.103, у вас 5.50
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы