Добрый день, занимаюсь ботом в ВКонтакте и возникла следующая ошибка Access Denied.
if (mb_strtolower($cmd[0]) == '!clear' || mb_strtolower($cmd[0]) == '!delete') {
if ($sql->isUserAdmin($db, $id, $peer_id)) {
if (!isset($cmd[1]) || $cmd[1] == '' || !isset($cmd[2]) || $cmd[2] == '') {
return false;
}
$kick_id = $cmd[1];
$kick_id = explode("|", mb_substr($kick_id, 3))[0];
$udal = $cmd[2];
$perm1 = $db->query('SELECT type FROM admin WHERE vk_id = ?i AND peer_id = ?i', $id, $peer_id)->fetch_assoc()['type'];
if ($perm1 < 3) {
return $vk->sendMessage($peer_id, 'Ошибка: У вас недостаточно прав');
}
if ($kick_id == $id || $kick_id == '-214582945' || $db->query("SELECT * FROM `admin` WHERE `vk_id` = '$id' AND `peer_id` = '$peer_id'")->fetch_assoc()['type'] <= $db->query("SELECT * FROM `admin` WHERE `vk_id` = '$kick_id' AND `peer_id` = '$peer_id'")->fetch_assoc()['type']) {
return $vk->sendMessage($peer_id, "$userError вы не можете удалить свои, бота или админа сообщения");
}
$chat_id = $peer_id - 2000000000;
$response = $vk->request('messages.getHistory', [
'peer_id' => $peer_id,
'user_id' => $kick_id,
'count' => $udal,
'rev' => 1
]);
$items = $response['items'];
foreach ($items as $item) {
$response = $vk->request('messages.delete', [
'message_ids' => $item['id'],
'delete_for_all' => 1
]);
if ($response['response'] == 1) {
$vk->sendMessage($peer_id, "$prefix_success Сообщение {$item['id']} пользователя https://vk.com/id{$kick_id} было удалено!");
} else {
$vk->sendMessage($peer_id, "$prefix_fail Не удалось удалить сообщение {$item['id']} пользователя https://vk.com/id{$kick_id}");
}
}
$vk->sendMessage($peer_id, "$prefix_system Сообщения пользователя https://vk.com/id{$kick_id} были удалены!");
} else {
return $vk->sendMessage($peer_id, "недостаточно прав");
}
}
На мои не оптимизированные коды прощу не смотреть и не судить.
Проблема в методе при возникновения в беседе 2000000001 беседа, пригласил бота выдал админку и при удаление сообщений выдает access denied.
В личке если бота ссылать то он работает нормально.
В чем ошибка? Уже весь документацию прошёл.