Answer the question
In order to leave comments, you need to log in
Bot buttons error in PHP?
I made a bot according to the guide, took the library, etc., etc., I put it on hosting and ... the buttons do not work. Simple messages work if sent to the bot ( https://vk.com/club200146298 ) - "date" sends the date (that is, everything works fine, without errors, VK accepts the code). When submitting "Start" it should submit the buttons, but it doesn't. What did I do wrong and what do I not understand?
Link to the whole bot - https://cloud.mail.ru/public/293y/5nTxRewRo
<?php
require_once('simplevk-master/autoload.php'); // Подключение библиотеки
use DigitalStar\vk_api\VK_api as vk_api; // Основной класс
use DigitalStar\vk_api\VkApiException; // Обработка ошибок
const VK_KEY = "TOKEN"; // Токен сообщества
const CONFIRM_STR = "CONF_TOKEN"; // Тот самый ключ из сообщества
const VERSION = "5.103"; // Версия API VK
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$data = json_decode(file_get_contents('php://input')); //Получает и декодирует JSON пришедший из ВК
$vk->sendOK(); //Говорим vk, что мы приняли callback
// ТУТ НАШИ КНОПКИ ===
$BTN_1 = $vk->buttonText('№1', 'blue', ['command' => 'btn_1']);
$BTN_2 = $vk->buttonText('№2', 'blue', ['command' => 'btn_2']);
$BTN_3 = $vk->buttonText('№3', 'blue', ['command' => 'btn_3']);
$BTN_4 = $vk->buttonText('№4', 'blue', ['command' => 'btn_4']);
$BTN_5 = $vk->buttonText('№1', 'green', ['command' => 'btn_5']);
$BTN_6 = $vk->buttonText('№2', 'green', ['command' => 'btn_6']);
$BTN_7 = $vk->buttonText('№3', 'green', ['command' => 'btn_7']);
$BTN_8 = $vk->buttonText('№4', 'green', ['command' => 'btn_8']);
$BTN_9 = $vk->buttonText('Назад', 'red', ['command' => 'btn_9']);
$BTN_10 = $vk->buttonText('Назад', 'red', ['command' => 'btn_10']);
// ===================
// ====== Наши переменные ============
$id = $data->object->message->from_id; // Узнаем ID пользователя, кто написал нам
$peer_id = $data->object->message->peer_id;
$message = $data->object->message->text; // Само сообщение от пользователя
$date = date("d.m.Y H:i");
// ====== *************** ============
if ($data->type == 'message_new') {
if($message == 'Начать') {
$vk->sendButton($peer_id, "Произвольный текст:", );
}
if (isset($data->object->message->payload)) { //получаем payload
$payload = json_decode($data->object->message->payload, True); // Декодируем в JSON формат
} else {
$payload = null; // Иначе кнопок нет
}
$payload = $payload['command']; // $payload = название нашей кнопки
// Теперь пишем действия с кнопками
if ($payload == 'btn_1')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($payload == 'btn_2')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($payload == 'btn_3')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($payload == 'btn_4')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($payload == 'btn_9')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($payload == 'btn_10')
$vk->sendButton($peer_id, "Произвольный текст:", );
if ($message == 'Отключить')
$vk->sendButton($peer_id, "Кнопки скрыты, чтобы снова вызвать их, отправьте 'Начать' ", );
if ($message == 'Дата') {
$vk->sendMessage($peer_id, $date);
}
if ($message == 'дата') {
$vk->sendMessage($peer_id, $date);
}
}
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