Ошибка 403 при загрузке файла - PullRequest
0 голосов
/ 05 марта 2020

Я получаю ошибку 403 при попытке загрузить любой файл с диска. Для загрузки используется следующая функция:

        public function downloadFile($fileData)
        {
            $this->googleClient = $this->getClient(true);
            $fileId = $fileData['id'];
            $fileSize = (int)$fileData['size'];

            $http = $this->googleClient->authorize();
            $chunkSizeBytes = 1 * 1024 * 1024;
            $chunkStart = 0;
            $tmpFile = tmpfile();
            $metaData = stream_get_meta_data($tmpFile);
            fclose($tmpFile);

            $newFile = fopen($metaData["uri"], "wb");
            while ($chunkStart < $fileSize)
            {
                $chunkEnd = $chunkStart + $chunkSizeBytes;
                $response = $http->request(
                    'GET',
                    sprintf('/drive/v3/files/%s', $fileId),
                    [
                        'query' => ['alt' => 'media'],
                        'headers' => [
                            'Range' => sprintf('bytes=%s-%s', $chunkStart, $chunkEnd)
                        ]
                    ]
                );
                $chunkStart = $chunkEnd + 1;
                fwrite($newFile, $response->getBody()->getContents());
            }
            fclose($newFile);
            return $metaData['uri'];
        }

Настройки клиента:

            $client = new Google_Client();
            $client->setApplicationName('Google Drive load files');
            $client->setScopes(Google_Service_Drive::DRIVE);

            $client->setAuthConfig($this->configuration['gdriveCredentialsJson']);
            $client->setAccessType('offline');
            $client->setAccessToken($this->configuration['gdriveTokensJson']);

Я генерирую новый токен refre sh перед началом загрузки файла.

Возвращается следующая ошибка:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "appNotAuthorizedToFile",
    "message": "The user has not granted the app 436111396855 read access to the file 1hUxQkXVFsOCoRnxANDVqlf8pIWV5Qssk.",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 403,
  "message": "The user has not granted the app 436111396855 read access to the file 1hUxQkXVFsOCoRnxANDVqlf8pIWV5Qssk."
 }
}

Я добавил свое приложение в сторонние приложения в «Управление контролем доступа к приложениям» и сделал его доверенным. Я также настроил область приложения в «Управление доступом клиентов API». Что Я скучаю?

...