A
A
artemk1ter2020-04-25 19:32:12
PHP
artemk1ter, 2020-04-25 19:32:12

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]			
      ]); 
      }			
    }
}


Thanks a lot

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question