vk callback api: Проблема с получением сообщения

161
03 ноября 2018, 22:20

Отправляет несколько сообщений через время на один запрос, хотя OK я прописал:

<?php
$access_token = '...';
$secret_key = '...';
$success_token = '...';
$data = json_decode(file_get_contents('php://input'));
if(!$data){
    echo '1';
}
if($data->secret !== $secret_key && $data->type !== 'confirmation'){
    echo '2';
}
switch($data->type){
    case 'confirmation':
        echo $success_token;
    break;
    case 'message_new':
    $body = $data->object->body;
        if($body == '/help'){
        $message = 'Привет, вот список того, что я могу:<br> /help - список команд<br> /info - информарция о боте <br>/kek - Kek! <br>/comment - оценю твою аву по 10-ти бальной шкале<br>/quest - текстовый квест.Скоро будет доступно! <br>Не забывай, что это всего лишь команды.Ты все также можешь просто общаться с ботом, как с человеком!';
    }elseif($body == '/info'){
        $message = 'Информация о боте: <br>id отправителя: '.$data->object->user_id.'<br>Версия протокола передачи запросов ВК: 5.79';
    }elseif($body == '/kek'){
        $message = 'Ахаха,kek id'.$data->object->user_id;
    }elseif($body == '/comment'){
        $star = rand(0, 10);
        $message = 'Хммм, дайка подумать... '.$star.'/10';
    }else{
        $message = 'Прости, но такой команды нет!';
    }
           $params = array(
            'user_id' => $data->object->user_id,
            'message' => $message,
            'v' => '5.78',
            'access_token' => $access_token
            );
        file_get_contents('https://api.vk.com/method/messages.send?' . http_build_query($params));
        header('HTTP/1.1 200 OK');
        echo 'ok';
    break;
}
?>
Answer 1

Стоит указывать в методе messages.send параметр random_id, о чем четко говорится в документации, а так же, что сервер возвращает ok, при default:

case 'message_new':
    ...
    break;
default: 
    echo 'ok';

Так же можно указать в вашем коде еще одно событие на уже отвеченное сообщение:

case 'message_reply':
    echo 'ok';
    break;
READ ALSO
Как исправить ошибку Unknown column &#39;id&#39; in &#39;field list&#39; trace

Как исправить ошибку Unknown column 'id' in 'field list' trace

Суть проблемы в том, что я пытаюсь записать в таблицу данные где u_id равен данному из поста, но мне пишет такую ошибку:

177
Как получить из тега option его содержимое

Как получить из тега option его содержимое

Столкнулся с такой проблемой: У меня есть форма бронирования отелей, в ней есть селект с номерами (стандартный, люкс и тд)

175
phpMyAdmin импортирует только часть базы

phpMyAdmin импортирует только часть базы

Пытаюсь залить базу данных на 190 мб, жду около 5 минут все вроде заливает, но только не все таблицы, кто может стыкался с таким, может какие-то...

144
Соединить несколько Select в один

Соединить несколько Select в один

У меня есть следующий код:

210