2017-02-10 6 views
1

in Google Drive API mit Service-Account-Credential, um Datei für einen bestimmten Benutzer hochladen j********@gmail.com.Zugriff auf Google Drive API-Dienstkonto schlägt manchmal fehl

Ich erstelle meinen Account Service Credential in Google Developer API-Konsole. i hinzufügen Erlaubnis für Benutzer j****@gmail.com i für j****@gmail.com meine App autorisieren

aber manchmal versagt autetication mit diesem messagge

Google_Service_Exception 

{ 
"error": "unauthorized_client", 
"error_description": "Client is unauthorized to retrieve access tokens using this method." 
} 

hier mein Code für auth

if ($credentials_file = checkServiceAccountCredentialsFile()) { 
    // set the location manually 
    $client->setAuthConfig($credentials_file); 
} elseif (getenv('GOOGLE_APPLICATION_CREDENTIALS')) { 
    // use the application default credentials 
    $client->useApplicationDefaultCredentials(); 
} else { 
    echo missingServiceAccountDetailsWarning(); 
    return; 
} 
$client->setSubject('j******@gmail.com'); 
$client->setScopes(['https://www.googleapis.com/auth/drive']); 
$service = new Google_Service_Drive($client); 
$files = $service->files->listFiles(); 
+0

Sie müssen klären, wann "manchmal" ist, um das Problem zu identifizieren. – Wolfie

+0

manchmal bedeutet, wenn ich Seite aktualisieren, ein Mal auf drei oder vier habe ich den Fehler, es ist ein bisschen seltsam, vielen Dank Gianmaria –

+0

hier ist der Link, nur um eine Idee zu haben http://advertising.fortale.it/basic/web/ –

Antwort

0

können Sie die Google API Client Library for PHP verwenden Web-Server-Anwendungen zu erstellen, die OAuth 2.0 Autorisierung verwenden Google APIs zugreifen. Außerdem verwenden Webanwendungen bei API-Aufrufen häufig service accounts, insbesondere wenn Cloud-APIs aufgerufen werden, um auf projektbasierte Daten statt auf benutzerspezifische Daten zuzugreifen. Diese Mechanismen können in Verbindung mit einer Benutzerautorisierung in einer Web-Server-Anwendung verwendet werden.

In Bezug auf Sie Fehler unauthorized_client, tritt es normalerweise auf, wenn die Anforderung die Validierung nicht bestanden hat. Wenn Sie Oauth2 verwenden, müssen Sie, wie angegeben, here ein Refresh-Token für jeden Benutzer haben, der Ihre Anwendung verwendet. Sie können dies überprüfen tutorial wie OAuth2 funktioniert.

Verwandte Themen