Аутентификация сервисных учетных записей не работает с Google Диска — удалить только файл

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

Плиз помогите решить эту проблему!


person Sattanathan    schedule 24.11.2015    source источник
comment
Не похоже, что это связано с Google App Engine. Если нет, пожалуйста, удалите тег   -  person Igor Artamonov    schedule 24.11.2015
comment
спасибо Игорь, тег удален   -  person Sattanathan    schedule 25.11.2015
comment
Насколько я знаю, только владелец может удалить файл. Однако зрители могут удалить файл, что будет тем же действием, что и в пользовательском интерфейсе. Попробуйте удалить файл из учетной записи зрителя, чтобы проверить, работает ли это для вас.   -  person Gerardo    schedule 25.11.2015
comment
Джерардо, я попытался удалить файл, используя учетную запись службы. Я могу удалить, если я являюсь владельцем файла. но я не могу удалить мусор, если я зритель. Мне нужно использовать SA только для удаления файла с G Drive как владельца, так и зрителя. Пожалуйста, помогите мне, как решить эту проблему.   -  person Sattanathan    schedule 01.12.2015
comment
Gerardo, пожалуйста, объясните, как средство просмотра может удалить файл вручную   -  person Sattanathan    schedule 01.12.2015
comment
Пожалуйста, помогите мне решить эту проблему.   -  person Sattanathan    schedule 17.12.2015