Ошибка учетной записи службы Google Drive SDK «Аутентифицированный пользователь не установил приложение с идентификатором клиента…»
Я пытаюсь создать приложение Google Drive, которое может работать в фоновом режиме (например, cronjob), без какого-либо взаимодействия с пользователем, используя учетную запись службы Google Drive SDK, но оно дает мне эту ошибку, и я не могу понять, почему:
Error calling POST https://www.googleapis.com/upload/drive/v1/files?uploadType=multipart: (403) The authenticated user has not installed the app with client id {my_client_id}
На консоли API Google я активировал Drive API и Drive SDK. На вкладке Drive SDK я настроил всю необходимую информацию. Я также опубликовал свое приложение для тестировщиков только в Интернет-магазине Chrome и установил его в свой Google Chrome, а имя приложения появилось на моем Google Диске & quot; Создать & quot; меню.
Это фрагмент моего кода:
<code><?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' )); ?> </code>
Насколько я понимаю, приложение может использовать служебную учетную запись для Google Drive SDK от имени пользователя. Означает ли это, что у пользователя нет вопроса об аутентификации (запросе разрешений)? Тогда как приложение аутентифицирует себя? Или мое понимание, вероятно, неправильно? Пожалуйста, помогите просветить меня здесь.