Мы используем сервисные аккаунты 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: недостаточно прав
Плиз помогите решить эту проблему!