Мы работаем над инструментом, который загружает все таблицы на Google Диске и отправляет их на MySQL. Это прекрасно работает для My Drive. Теперь мы «обновились» до G Suite for Business и обнаружили эту проблему с доступом к общему диску.
Это использование служебной учетной записи. Файлы на одном общем диске указаны в списке, а файлы на другом общем диске - нет. Файлы на другом диске будут перечислены, если мы укажем corpora
и driveId
.
Я проверил следующие разрешения:
- Разрешения для учетной записи службы для общих дисков одинаковы
- Никаких специальных разрешений для промежуточных папок или файлов не установлено
Я использую Google Drives API для вывода списка файлов, подобных этому:
$this->googleClient->setScopes(\Google_Service_Drive::DRIVE_METADATA_READONLY);
$googleService = new \Google_Service_Drive($this->googleClient);
$this->throttleIfNecessary();
// Collect file list
$optParams = [
//'corpora'=> 'domain',
'orderBy' => 'modifiedTime',
'pageSize' => $count, // Google default is 100, maximum is 1000
'q' => "mimeType = 'application/vnd.google-apps.spreadsheet' and modifiedTime >= '$modifiedTime'",
#'fields' => 'nextPageToken, files(id,modifiedTime)',
'fields' => 'files(id,modifiedTime)',
'supportsAllDrives' => 'true',
'includeItemsFromAllDrives' => 'true',
'includeTeamDriveItems' => 'true',
'supportsTeamDrives' => 'true',
//'corpora' => 'drive',
//'driveId' => 'oesntuheunt' // PMT Owners Shared Drive
];
print_r($optParams);
// https://developers.google.com/drive/api/v3/reference/files/list
$results = $googleService->files->listFiles($optParams);
print_r($results);
Как мне обновить это, чтобы служебная учетная запись могла получить доступ ко всем файлам на всех общих дисках? `