Вообщем, у меня есть БД, с вопросами и ответами, если мне кто-то написал сообщение в ВК, то я считываю это сообщение, проверяю совпадает ли оно с каким-либо из вопросов и собственно если да, то подставляю под него ответ из своей БД и отправляю..
Все вроде работает, но иногда бывает, что может отправить просто рандомное сообщение рандомному чуваку из тех кто мне писал, не зависимо есть ли прочитанные сообщения и писал ли мне кто-то, никак не могу понять почему так?
Вот код:
<?php
require_once "vk.api.php";
define('token', 'e495f5565168873062688ff988a83e5e39a45e3fb2a3ba7344cdb772545e7157a97259af8f1b3d3865932');
$vk = new VK(token);
$link = mysqli_connect("localhost","root","","digi") or die("Ошибка " . mysqli_error($link));
if (!$link) {
echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Соединение с MySQL установлено!" . PHP_EOL;
echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;
$messages = $vk->request('messages.get', [
'count' => '10',
]);
file_get_contents($messages);
$resp = $messages['response'];
foreach ($resp as $message):
if (!$message['read_state']) {
$vk->request('account.setOnline');
$query = "SELECT input, output FROM basis";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result)) {
if ($message['body'] == $row["input"]) {
$reading = $vk->request('messages.markAsRead', [
'peer_id' => $message['uid'],
]);
$typing = $vk->request('messages.setActivity', [
'user_id' => $message['uid'],
'type' => 'typing',
]);
$send = $vk->request('messages.send', [
'message' => $row["output"],
'uid' => $message['uid'],
]);
file_get_contents($send); //если не писать так, сообщение попросту не отсылается
}
}
}
endforeach;