{"type":"message_reply","object":{"id":4809,"date":1506243303,"out":1,"user_id":364944588,"read_state":1,"title":"","body":"Для возврата в главное меню, напиши - 0","random_id":0},"group_id":151833540}
<?php
require __DIR__.'/config/config.php';
require __DIR__.'/core/apiVK.php';
$v = new vk();
$confirmation_token = 'токен';
//Ключ доступа сообщества
$token = 'токен';
if (!isset($_REQUEST)) {
return;
}
//Получаем и декодируем уведомление
$data = $v->get();
//Проверяем, что находится в поле "type"
switch ($data->type) {
//Если это уведомление для подтверждения адреса сервера...
case 'confirmation':
//...отправляем строку для подтверждения адреса
echo $confirmation_token;
break;
//Если это уведомление о новом сообщении...
case 'message_new':
//...получаем id его автора
$uid = $data->object->user_id;
$user_msg = $data->object->body;
//затем с помощью users.get получаем данные об авторе
$user_info = $v->usersGet($uid);
//и извлекаем из ответа его имя
$info = array_shift(json_decode($user_info)->response);
$uname = $info->first_name;
//С помощью messages.send и токена сообщества отправляем ответное сообщение
//Главное Меню
$user_msg = mb_strtolower($user_msg);
if (strpos($user_msg, 'команда 1') !== false or strpos($user_msg, 'команда 1-1') !== false or strpos($user_msg, 'команда 1-1-1') !== false) {
$v->msgsend("ответ на команду", $uid, $token, $attachment);
}elseif ($user_msg == 'команда 2'){
$v->msgsend("ответ на команду", $uid, $token, $attachment);
// Ответ бота на не понятную команду.
}else{
$v->msgsend("
Я тебя не понимаю.", $uid, $token);
}
//Возвращаем "ok" серверу Callback API
echo('ok');
die;
break;
}
?>
class vk {
const API_VERSION = '5.24';
const METHOD_URL = 'https://api.vk.com/method/';
public function get(){
return json_decode(file_get_contents('php://input'));
}
public function usersGet($uid){
return file_get_contents(self::METHOD_URL."users.get?user_ids={$uid}&v=".self::API_VERSION);
}
public function msgSend($msg, $uid, $token, $attachment){
$request_params = array(
'message' => $msg,
'attachment' => $attachment,
'user_id' => $uid,
'access_token' => $token,
'v' => self::API_VERSION
);
$get_params = http_build_query($request_params);
file_get_contents(self::METHOD_URL."messages.send?".$get_params);
}
class vk {
const API_VERSION = '5.24';
const METHOD_URL = 'https://api.vk.com/method/';
public function get(){
return json_decode(file_get_contents('php://input'));
}
public function usersGet($uid){
return file_get_contents(self::METHOD_URL."users.get?user_ids={$uid}&v=".self::API_VERSION);
}
public function msgSend($msg, $uid, $token, $attachment){
$request_params = array(
'message' => $msg,
'attachment' => $attachment,
'user_id' => $uid,
'access_token' => $token,
'v' => self::API_VERSION
);
$get_params = http_build_query($request_params);
file_get_contents(self::METHOD_URL."messages.send?".$get_params);
}