Google Drive SDK-Dienstkontofehler "Der authentifizierte Benutzer hat die App nicht mit der Client-ID installiert ..."

Ich versuche, mithilfe des Google Drive SDK-Dienstkontos eine Google Drive-App zu erstellen, die im Hintergrund ausgeführt werden kann (z. B. ein Cronjob), ohne dass Benutzerinteraktion erforderlich ist. Ich erhalte jedoch diesen Fehler und kann nicht verstehen, warum:

Fehler beim Aufrufen von POSThttps://www.googleapis.com/upload/drive/v1/files?uploadType=multipart: (403) Der authentifizierte Benutzer hat die App mit der Client-ID {my_client_id} nicht installiert.

In der Google APIs Console habe ich die Drive API und das Drive SDK aktiviert. Auf der Registerkarte Drive SDK habe ich alle erforderlichen Informationen eingerichtet. Ich habe meine App nur für Tester im Chrome Web Store veröffentlicht und in Google Chrome installiert. Der Anwendungsname wird in meinem Google Drive-Menü "Erstellen" angezeigt.

Dies ist ein Ausschnitt aus meinem Code:

<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>

Soweit ich weiß, kann eine Anwendung das Dienstkonto für Google Drive SDK im Namen eines Nutzers verwenden. Bedeutet das, dass es keine Authentifizierungsfrage (Anforderung von Berechtigungen) für den Benutzer gibt? Wie authentifiziert sich die Anwendung dann selbst? Oder ist mein Verständnis wohl falsch? Bitte helfen Sie, mich hier aufzuklären.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage