Ошибка вызова DELETE — (403) Недостаточно прав для этого файла & quot; | Google Drive API

Я создал следующий код. Я должен загрузить файлы из папки Google Drive. Папка является общей. После загрузки я должен удалить эти файлы с Google Диска.

Я старался —

  1. $file = $service->parents->delete($file_id,$folder_id); — Он ничего не делает и не дает никакой ошибки.
  2. $file = $service->files->trash($file_id); — Это дает Ошибка вызова DELETE — (403) Недостаточно прав для этого файла « Ошибка.

Мой код:

<?php
require_once "google/google-api-php-client/src/Google_Client.php";

require_once "google/google-api-php-client/src/contrib/Google_DriveService.php";

require_once "google/google-api-php-client/src/contrib/Google_Oauth2Service.php";

require_once "google/vendor/autoload.php";

$file_id = '1bJm_cqIRVh5RaVrqVXGRL0CSYwTBlZur';
$folder_id='1gEllj4B9TCnLPe_dnl1ujX4u8smLL-Ky';

$DRIVE_SCOPE = 'https://www.googleapis.com/auth/drive';
$SERVICE_ACCOUNT_EMAIL = 'service_account_email@domain.com';
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'GoogleDriveApi-7cd8056e9eae.p12';function buildService() {//function for first build up service
global $DRIVE_SCOPE, $SERVICE_ACCOUNT_EMAIL, $SERVICE_ACCOUNT_PKCS12_FILE_PATH;

$key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);
$auth = new Google_AssertionCredentials(
$SERVICE_ACCOUNT_EMAIL, array($DRIVE_SCOPE), $key);
$client = new Google_Client();
$client->setUseObjects(true);
$client->setAssertionCredentials($auth);
return new Google_DriveService($client);

}

function printFilesInFolder($service, $folderId) {
$pageToken = NULL;
$arrayFile=array();
do {
try {
$parameters = array();
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$children = $service->children->listChildren($folderId, $parameters);
$arrayFile=$children;
$pageToken = $children->getNextPageToken();
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
$pageToken = NULL;
}
} while ($pageToken);
return $arrayFile;
}

try {

$service = buildService();

$children=printFilesInFolder($service,$folder_id);

$myfile = fopen("D:/list.txt", "wb") or die("Unable to open file!");
foreach ($children->getItems() as $child) {
print "\r\nFile Id: " . $child->getId();
fwrite($myfile, $child->getId());
fwrite($myfile, "\r\n");
}
$file = $service->parents->delete($file_id,$folder_id);
$file = $service->files->trash($file_id);

fclose($myfile);

} catch (Exception $e) {
print "An error occurred1: " . $e->getMessage();
}
?>

1

Решение

Ваш ошибка указывает, что у пользователя нет прав на запись в файл, и приложение пытается изменить конкретный файл.

Предлагаемое действие: сообщить пользователю, что необходимо запросить
эти разрешения для обновления файла. Вы также можете захотеть
проверить уровни доступа пользователя в метаданных, полученных
files.get и используйте это, чтобы изменить ваш пользовательский интерфейс только для чтения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector