Мы используем Аккаунты Сервиса Google в консоли разработчиков PHP API для диска документа.
При проверке вручную владельцы, редакторы, а затем пользователи документа могут удалить. Тогда при использовании Oauth SA те же читатели или редакторы документа не могут удалить
Создание файла диска, совместное использование файла, а затем установка владельца документа для файла, все функции которого работают нормально. Мы получаем проблему при удалении файла не владельцами документа, в том числе редакторами или читателями документа. Но если владелец документа удаляет, значит, файл удаляется без ошибок.
ПРИМЕР:
ФУНКЦИЯ ПОЛУЧИТЬ СЕРВИС С ИСПОЛЬЗОВАНИЕМ СЧЕТА ОБСЛУЖИВАНИЯ
public function get_service_document ($userEmail,$service_id,$scope,$service_filename) {
$key = file_get_contents('application/models/lib/'.$service_filename);
$auth = new Google_Auth_AssertionCredentials(
$service_id,
array($scope),
$key);
$auth->sub = $userEmail;
$client = new Google_Client();
$client->setAssertionCredentials($auth);
return new Google_Service_Drive($client);
}
ФУНКЦИЯ ДЛЯ УДАЛЕНИЯ ФАЙЛА ПРИВОДА
public function deleteDriveFiles(){
[email protected];
$service_id=796xxxxxxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com;
$scope=https://www.googleapis.com/auth/drive;
$service_filename=xxxxxxxxxx-6088b372ef98.p12;
$this->load->library('Google');
/**GETTING DOCUMENT SERVICE**/
$service = $this->get_service_document();
$fileId="xxxxxxxxxxxxxxxxxxxxx";/** FILE ID OF DOCUMENT**/
try
{
$service->files->delete($fileId);/**
}
catch(Exception $e){
ECHO $e->getMessage();
}
}
Приведенная выше функция показывает ошибку ниже ошибки:
Ошибка вызова DELETE https://www.googleapis.com//drive/v2/files/1ZTd7BxmQErlJTr7OE9uEOOPtIko5UOljOlp-9ampYcA: (403) Недостаточно прав для этого файла
Мы попытались решить вышеуказанную проблему, используя ссылку ниже, но безрезультатно
API клиента Google PHP: недостаточно прав
Пожалуйста, помогите решить эту проблему!
Задача ещё не решена.
Других решений пока нет …