2017-02-03 6 views
2

Ich kämpfe derzeit um den Zugriff auf die Google API, wenn die Identität eines Benutzers.PHP Google API-Dienst-Konten

ich als dieser Benutzer eine Verbindung herstellen können jedoch ich eine Störung erhalte, wo ich mit einem Fehler präsentiert bin:

"error": { 
    "errors": [ 
     { 
      "domain": "global", 
      "reason": "appNotAuthorizedToFile", 
      "message": "The user has not granted the app <app id> write access to the file <file id>", 
      "locationType": "header", 
      "location": "Authorization" 
     } 
    ], 
} 

Die empfohlene Auflösung ist Google Picker zu verwenden und die Benutzer bekommen meiner App erlauben diese zugreifen Datei. Da ich jedoch ein Dienstkonto mit domänenweiter Delegierung und g-suite aktiviert habe, dachte ich, dies sei nicht notwendig.

mein aktueller PHP-Code ist:

$client = new Google_Client(); 
$client->setApplicationName($appName); 
$client->setAuthConfig($credentials); 
$client->addScope($scopes); 
$client->setClientId($key); 
$client->useApplicationDefaultCredentials(); 
$client->setSubject($userTobe); 
$client->setAccessType('offline'); 

ich putenv bin mit meiner service_account.json in meine Datei zu schieben. Ich folgte dem schnellen Start, wie es vorgeschlagen wurde. Ich habe alle erforderlichen Bereiche in der Sicherheitskonsole aktiviert. Wenn ich getRefreshTokenwithAssertion() festlege, kann ich ein access_token bekommen, das mit ya29 beginnt. jedoch zeigt dies immer noch den obigen Fehler.

Ich bin derzeit ratlos, wohin ich von hier gehen soll. Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Welche Bereiche verwenden Sie? Bitte stellen Sie sicher, dass Sie das Laufwerk Auth Scope in Ihrer Anwendung einstellen: https://www.googleapis.com/auth/drive (Google_service_Drive :: DRIVE)

+0

Ich hatte einen Bereich in der Einrichtung verpasst, denken Laufwerk und Laufwerk :: Datei würde das tun gleich. – dmurray

0

Wurden der Client und die Bereiche in der Verwaltungskonsole autorisiert?

Admin-Konsole => Sicherheit => Erweiterte Einstellungen => Verwaltung API-Client-Zugriff

+0

Yup, es wurde alles eingerichtet und konfiguriert. Ich kann mich mit dem Account als ich selbst verbinden, aber ich kann mich nicht als jemand ausgeben (oder zumindest etwas tun), sagt die App hat keine Berechtigung – dmurray