Je suis actuellement aux prises avec des problèmes d'accès à l'API google lorsque je personnifie un utilisateur.Comptes de service API PHP Google
je peux connecter en tant mais je suis que l'utilisateur obtiens une erreur où je suis présenté avec une erreur:
"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"
}
],
}
La résolution recommandée est d'utiliser Google Picker et obtenir l'utilisateur pour permettre à mon application pour accéder à ce fichier. Cependant, comme j'utilise un compte de service avec délégation de domaine et g-suite activé, je pensais que ce n'était pas nécessaire.
mon code php actuel est:
$client = new Google_Client();
$client->setApplicationName($appName);
$client->setAuthConfig($credentials);
$client->addScope($scopes);
$client->setClientId($key);
$client->useApplicationDefaultCredentials();
$client->setSubject($userTobe);
$client->setAccessType('offline');
J'utilise putenv pour pousser mon service_account.json dans mon dossier. J'ai suivi le démarrage rapide comme suggéré. J'ai activé toutes les étendues requises dans la console de sécurité. Si je spécifie getRefreshTokenwithAssertion() je peux obtenir un access_token commençant par ya29. Cependant, cela présente toujours l'erreur ci-dessus.
Je ne sais pas où aller maintenant. Toute aide serait grandement appréciée.
J'ai manqué une portée dans la configuration, la pensée et le lecteur: fichier ferait la même. – dmurray