Есть код, который выполняет 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); //Отправляю сообщение, которое прислал пользователь.