Взял из примера
https://vk.com/dev/callback_api
И немного изменил - чтобы шла запись в базу данных.
В результате получаю на одно событие несколько записей в базу, причем они еще и идут вперемежку: после второго, третьего и т.д. может еще раз записаться предыдущее - как на картинке.
Что не так с кодом?
<?php
//var_dump($_REQUEST);
if (!isset($_REQUEST)) {
return;
}
$txt = '';
$date = '';
//Строка для подтверждения адреса сервера из настроек Callback API
$confirmation_token = 'dkrijsakcnalfn';
//Ключ доступа сообщества
$token = 'trjhrtjrtjjrtjrjurtererherjherhe';
//Получаем и декодируем уведомление
$data = json_decode(file_get_contents('php://input'));
//Проверяем, что находится в поле "type"
switch ($data->type) {
//Если это уведомление для подтверждения адреса сервера...
case 'confirmation':
//...отправляем строку для подтверждения адреса
echo $confirmation_token;
break;
//Если это уведомление о новом сообщении...
case 'wall_post_new':
//...получаем
$txt = $data->object->text;
$date = $data->object->date;
//Возвращаем "ok" серверу Callback API
echo('ok');
break;
}
require('bd.php');
$host = "localhost";
$user = "user";
$password = "hdrgeegse";
$datebase = "dbname";
updateDate ($host, $user, $password, $datebase, $txt, $date);
?>
<?php
function updateDate ($host, $user, $password, $datebase, $txt, $date) {
$link = mysqli_connect($host, $user, $password, $datebase) or die("Не могу соединиться с MySQL.");
$query = "INSERT INTO `text`(`id`, `text`, `date`) VALUES (NULL,$txt,$date)";
$result = mysqli_query ($link, $query) or die("ERROR! " . mysqli_error($link));
if($result)
{
echo "<span style='color:blue;'>OK!</span>";
}
// закрываем подключение
mysqli_close($link);
}