TeamDrive перечисляет все папки, включая childrren - PullRequest
0 голосов
/ 19 февраля 2019

Я могу получить доступ к папкам верхнего уровня (корневого уровня) для моего TeamDrive, но не смог выяснить, как получить все подпапки (дочерние).То, что я хотел бы выполнить, - это заставить всех детей одним вызовом ...

Я видел REST API teamdrive здесь https://developers.google.com/drive/api/v3/reference/teamdrives/list, но это только возвращает корневой уровень.

Я могу получить следующий уровень вниз, взяв $ folderId (это идентификатор папки, для которого мы пытаемся получить дочерние элементы) и выполнив 2 вызова для получения следующего уровня

        $optParams = array(
            'supportsTeamDrives' => true,
        );
        $results = $service->files->get($folderId, $optParams);
        $teamDriveId = $results["teamDriveId"];

затемиспользуя полученный $ teamDriveId и вызывая файлы-> listFiles

        $optParams = array(
        'q'                     => "'{$folderId}' in parents and trashed = false and mimeType = 'application/vnd.google-apps.folder'",
        'pageSize'              => $pageSize,
        'corpora'               => 'teamDrive',
        'includeTeamDriveItems' => true,
        'supportsTeamDrives'    => true,
        'teamDriveId'           => $teamDriveId,    // this must be the parent Id
        'orderBy'               => 'name',
        'pageToken'             => $nextPageToken,
    );

    $results = $service->files->listFiles($optParams);
    $nextPageToken = !isset($results["nextPageToken"]) ? "" : $results["nextPageToken"];

Это будет медленно, поскольку папки могут расширяться в течение некоторого времени ... Кто-нибудь знает, как получить полную папку и всю дочернюю структуру длямои командные диски?Кто-нибудь знает, разрешено ли это вообще?Я пробовал множество различных опций в своем PHP-коде и в различных областях тестирования функций REST API.

...