@Frayl

Не отправляется json, в чём ошибка?

Есть код, который выполняет vk api методы:

Код

<?php

class request {
    
    private $token = "";
    private $version = "";
    
    public function __construct($token, $version) {
        $this->token = $token;
        $this->version = $version;
    }
    
    public function sendMessage($user_id, $message, $keyboard = null) {
        if (!is_null($keyboard)) {
            $this->params("messages.send", [
                "message" => $message,
                "peer_id" => $user_id,
                "random_id" => 0,
                "keyboard" => $keyboard
            ]);
        }
        else {
            $this->params("messages.send", [
                "message" => $message,
                "peer_id" => $user_id,
                "random_id" => 0
            ]);
        }
    }
    
    public function get_Button($label, $color, $payload) {
        $button = [
            "action" => [
                "type" => "text",
                "payload" => $payload,
                "label" => $label
            ],
            "color" => $color
        ];
        
        return $button;
    }
    
    public function get_Keyboard($buttons, $one_time = false) {
        $keyboard = [
            "one_time" => $one_time,
            "buttons" => $buttons
        ];
        
        return json_encode($keyboard, JSON_UNESCAPED_UNICODE);
    }
    
    private function params($method, $params) {
        $params["access_token"] = $this->token;
        $params["v"] = $this->version;
        
        $request = http_build_query($params);
        $url = "https://api.vk.com/method/" .$method. "?" .$request;
        
        return file_get_contents($url);
    }
    
}



И есть бот, в котором я пытаюсь отправить клавиатуру, сообщение отправляется, но клавиатура нет. В чём ошибка?

Бот:

$request = new request("токен", "5.130");

$button1 = $request->get_Button("Кнопка 1", "secondary", "button1");
$button2 = $request->get_Button("Кнопка 2", "secondary", "button2");
$button3 = $request->get_Button("Кнопка 3", "secondary", "button3");
$button4 = $request->get_Button("Кнопка 4", "secondary", "button4");
                
$keyboard = $request->get_Keyboard([
    [$button1, $button2],
    [$button3, $button4]
]);
                
$request->sendMessage($user_id, $message, $keyboard); //Отправляю сообщение, которое прислал пользователь.
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы