J'essaie de créer une application Google Drive pouvant s'exécuter en arrière-plan (par exemple, un cronjob), sans intervention de l'utilisateur , en utilisant Google Drive SDK compte de service, mais il me donne cette erreur et je ne peux pas comprendre pourquoi:Erreur de compte de service Google Drive SDK "L'utilisateur authentifié n'a pas installé l'application avec l'ID client ..."
erreur appelant POST https://www.googleapis.com/upload/drive/v1/files?uploadType=multipart: (403) l'utilisateur authentifié n'a pas installé l'application avec identifiant client {de my_client_id}
Sur la console API Google, j'ai activé Drive API et Drive SDK. Dans l'onglet Drive SDK, j'ai configuré toutes les informations requises. J'ai également publié mon application pour testeurs uniquement sur le Chrome Web Store et l'ai installée dans mon Google Chrome. Le nom de l'application apparaît dans le menu "Créer" de Google Drive.
C'est un extrait de mon 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'
));
?>
D'après ce que je comprends, une application peut utiliser le service de compte pour SDK Google Drive pour le compte d'un utilisateur. Cela signifie-t-il qu'il n'y a pas de question d'authentification (demande de permissions) à l'utilisateur? Alors, comment l'application s'authentifie-t-elle? Ou ma compréhension est probablement fausse? S'il vous plaît aidez-moi à m'éclairer ici.
J'ai fait ça, et ça marche, merci! :) – Irwan