google-api - tienes - integrar login google en mi web
Error de autorizaciĆ³n de cuenta de servicio API de Google (2)
Estoy utilizando el cliente google-api-php- client para conectarme a Google Drive usando una cuenta de servicio. La mayoría de las veces funciona, pero de vez en cuando (digamos que si me siento aquí y actualizo la página una y otra vez), recibo una Google_Service_Exception
con el mensaje unauthorized_client: Client is unauthorized to retrieve access tokens using this method
. El error solo ocurre si el $this->drive_service->files->listFiles()
está presente. No ocurre si utilizo la Cuenta de servicio directamente en lugar de usar setSubject()
para suplantar a otro usuario.
$this->client = new Google_Client();
$this->client->useApplicationDefaultCredentials();
$this->client->addScope("https://www.googleapis.com/auth/drive");
$this->client->setSubject(''xxxx'');
$this->drive_service = new Google_Service_Drive($this->client);
$files = $this->drive_service->files->listFiles();
¿Alguna idea?
Actualización del 21 de febrero de 2017: el error ya no es intermitente, sucede todo el tiempo, por lo que ya no puedo conectarme a una cuenta normal a través de una cuenta de servicio.
Actualización 10 de marzo de 2017: Parece que es un malentendido del usuario. La cuenta de servicio debe tener "autoridad de dominio completo" para suplantar a los usuarios de ese dominio, algo que no he hecho. Simplemente autoricé a un cliente para acceder a la cuenta de usuarios como se describe aquí .
No sé por qué su error ocurre periódicamente, pero tengo entendido que para hacerse pasar por un usuario, debe otorgar acceso a la cuenta de servicio .
He visto este error intermitentemente cuando la cuenta que se está suplantando se acaba de crear. Por lo que parece, agregar un retraso de 10 segundos antes de intentar crear el servicio elimina el problema.