@kalsc12345
Неизвестный человек.

VK bot callback php?

Добрый день, занимаюсь ботом в ВКонтакте и возникла следующая ошибка 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.
В личке если бота ссылать то он работает нормально.
64251aa61175f990580111.jpeg

64251ab1cd3b6191610711.jpeg

В чем ошибка? Уже весь документацию прошёл.
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект