Błąd konta usługi SDK Google Drive „Uwierzytelniony użytkownik nie zainstalował aplikacji z identyfikatorem klienta…”
Próbuję utworzyć aplikację Dysku Google, która może działać w tle (np. Cronjob), bez żadnej interakcji z użytkownikiem, korzystając z Konta usługi SDK Dysku Google, ale daje mi to błąd i nie rozumiem dlaczego:
Błąd podczas wywoływania POSThttps://www.googleapis.com/upload/drive/v1/files?uploadType=multipart: (403) Uwierzytelniony użytkownik nie zainstalował aplikacji z identyfikatorem klienta {id_klienta}
W konsoli Google APIs aktywowałem Drive API and Drive SDK. Na karcie Napęd SDK skonfigurowałem wszystkie wymagane informacje. Opublikowałem także moją aplikację dla testerów tylko w Chrome Web Store i zainstalowałem ją w Google Chrome, a nazwa aplikacji pojawia się w menu „Utwórz” na Dysku Google.
To fragment mojego kodu:
<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>
Z tego, co rozumiem, aplikacja może korzystać z konta usługi dla zestawu SDK Google Drive w imieniu użytkownika. Czy to oznacza, że użytkownik nie ma pytania o uwierzytelnienie (żądanie uprawnień)? W jaki sposób aplikacja się uwierzytelnia? Albo moje zrozumienie jest prawdopodobnie błędne? Pomóż mi oświecić mnie tutaj.