Ошибка учетной записи службы SDK Google Диска «Аутентифицированный пользователь не установил приложение с идентификатором клиента …»

Я пытаюсь создать приложение Google Диска, которое может работать в фоновом режиме (например, cronjob), без какого-либо взаимодействия с пользователем, используя учетную запись службы SDK Google Диска, но это дает мне эту ошибку, и я не понимаю, почему:

Ошибка при вызове POST https://www.googleapis.com/upload/drive/v1/files?uploadType=multipart : (403) Аутентифицированный пользователь не установил приложение с идентификатором клиента {my_client_id}

В Google APIs Console я активировал Drive API и Drive SDK. На вкладке SDK накопителя я установил всю необходимую информацию. Я также опубликовал свое приложение для тестировщиков только в интернет-магазине Chrome и установил его в свой Google Chrome, а имя приложения появилось в меню «Создать» на Google Диске.

Это фрагмент моего кода:

<?php require_once dirname(__FILE__).'/google-api-php-client/src/apiClient.php'; require_once dirname(__FILE__).'/google-api-php-client/src/contrib/apiDriveService.php'; $apiClient = new apiClient(); $apiClient->setClientId(DRIVE_CLIENT_ID); $apiClient->setClientSecret(DRIVE_CLIENT_SECRET); $apiClient->setAssertionCredentials(new apiAssertionCredentials( OAUTH2_EMAIL, array('https://www.googleapis.com/auth/drive.file'), file_get_contents(SERVICE_ACCOUNT_PRIVATEKEY_FILE)) ); $apiDriveService = new apiDriveService($apiClient); $file = new DriveFile(); $file->setTitle('filename.txt'); $file->setMimeType('text/plain'); $createdFile = $apiDriveService->files->insert($file, array( 'data' => 'file content goes here....', 'mimeType' => 'text/plain' )); ?> 

Насколько я понимаю, приложение может использовать учетную запись службы для SDK Google Диска от имени пользователя. Означает ли это, что пользователю не задан вопрос аутентификации (запрос на разрешения)? Тогда как приложение аутентифицируется? Или мое понимание, вероятно, неверно? Пожалуйста, помогите просветить меня здесь.

Solutions Collecting From Web of "Ошибка учетной записи службы SDK Google Диска «Аутентифицированный пользователь не установил приложение с идентификатором клиента …»"

Учетные записи службы не поддерживаются SDK накопителя из-за его модели безопасности.

Я бы предложил открыть (или создать) файл из веб-интерфейса Google Диска с вашим приложением и сохранить извлеченный доступ и обновить токены, которые вы получите после завершения авторизации потока OAuth 2.0.

Из вашего задания cron просто загрузите эти учетные данные, чтобы отправлять авторизованные запросы в API накопителя от имени вашего пользователя.