Answer the question
In order to leave comments, you need to log in
The vk api bot commands do not work. How to fix?
Hello, I'm writing a bot and I'm having a problem.
The bot does not respond to commands (and reacts to buttons), I couldn’t find an error in any way,
and decided to turn to the pros. Here is the code (some things are censored):
<?php
include "vk_api.php";
const VK_KEY = "cens"; // Токен сообщества
const ACCESS_KEY = "cens"; // Тот самый ключ из сообщества
const VERSION = "5.81"; // Версия API VK
$vk = new vk_api(VK_KEY, VERSION);
$data = json_decode(file_get_contents('php://input'));
if ($data->type == 'confirmation') {
exit(ACCESS_KEY);
}
$vk->sendOK();
echo 'ok';
// ====== Наши переменные ============
$id = $data->object->from_id; // Узнаем ID пользователя, кто написал нам
$message = $data->object->text; // Само сообщение от пользователя
// ====== *************** ============
//=====Кнопки======
const BTN_1 = [["command" => '/select //1'], "1", "red"];
const BTN_2 = [["command" => '/select //2'], "2", "red"];
const BTN_3 = [["command" => '/select //3'], "3", "red"];
const BTN_4 = [["command" => 'hack'], "Взлом", "red"];
const BTN_5 = [["command" => 'back'], "⬅️Назад", "green"];
const BTN_6 = [["command" => 'лалка'], "Троллить лалку", "blue"];
const BTN_7 = [["command" => '/ver'], "Информация⚙️", "red"];
const BTN_8 = [["command" => 'donate'], "Задонатить ", "blue"];
if (isset($data->object->peer_id))
$peer_id = $data->object->peer_id; // Получаем peer_id чата, откуда прилитело сообщение
else
$peer_id = $id;
if (isset($data->object->payload)){ //получаем payload
$payload = json_decode($data->object->payload, True);
} else {
$payload = null;
}
if ($payload != null) { // если payload существует
switch ($payload['command']) { //Смотрим что в payload кнопках
case '/select //1': //Если это Fish
$vk->sendMessage($id,'https://vk.com/club194653253?z=video-194653253_456239018%2Fvideos-194653253');
break;
case '/select //2':
$vk->sendMessage($id, 'https://vk.com/video-194653253_456239020');
break;
case '/select //3':
$vk->sendMessage($id, 'Unk_error');
break;
case 'hack':
$vk->sendImage($id, "img/pnt.jpg");
break;
case 'back':
$vk->sendButton($id, 'Возвращено!', [ //Отправляем кнопки пользователю
[BTN_6, BTN_7, BTN_8]
[BTN_4]
]);
break;
}
if ($data->type == 'message_new') {
if ($message == '/Начать') {
$vk->sendButton($id, 'Напиши /help, чтоб узнать что я могу', [ //Отправляем кнопки пользователю
[BTN_6, BTN_7, BTN_8]
[BTN_4]
]);
}
if ($message == '/help') {
$vk->sendMessage($id, "Мои команды: <br> /лалка - тролл лалки <br> /donate - задонатить админу <br> /vipporn (в разработке)<br> /hack - хакнуть пентагон <br> /ver - check info about bot");
}
if ($message == '/test') {
$vk->sendMessage($id, "1");
}
if ($message == '/лалка') {
$vk->sendButton($id, 'Выбери номер:', [ //Отправляем кнопки пользователю
[BTN_1, BTN_2, BTN_3]
[BTN_5]
]);
}
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question