Buenas gente
Un placer unirme a esta comunidad de programadores, espero ir colaborando en lo que pueda. Dicho esto voy al problema que tengo. Estoy desarrollando un sistema de backups de una web hacia Google Drive y si bien me funcionaba perfectamente, hace unos días esto ha cambiado. Me han comentado que es posible que hayan cambiando los sistemas de certificados o algo de las SSL del servidor, no sé si tendrá que ver con mi problema, pero el error que me saca en esencia es éste:
PHP Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."
He probado a cambiar las credenciales y el auth0, pero sigue sin ir, a alguien se le ocurre que me puede estar pasando con los token? Os pego mi código a continuación:
<?php require_once ('google/vendor/autoload.php'); putenv('GOOGLE_APPLICATION_CREDENTIALS=23.json'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->setApplicationName("MyApp"); $client->setScopes(['https://www.googleapis.com/auth/drive']); $client->setSubject('*****@gmail.com'); $service = new Google_Service_Drive($client); //Create a new folder $files= array(); $dir = dir('tmp'); while ($file = $dir->read()) { if ($file != '.' && $file != '..') { $files[] = $file; } } $dir->close(); $file = new Google_Service_Drive_DriveFile(); foreach ($files as $file_name) { $file_path = 'tmp/'.$file_name; $file->setName($file_name); $file->setDescription('Drive BK'); $file->setMimeType('application/tar.gz'); $createdFile = $service->files->create($file, array( 'data' => file_get_contents($file_path), 'mimeType' => 'application/zip', 'uploadType' => 'media' )); } $dir = dir('tmp'); chdir('tmp'); while ($file = $dir->read()) { if ($file != '.' && $file != '..') { $t=unlink($file); } } $dir->close(); ?>
Ojalá me podáis ayudar y gracias a todos los que se interesen por la pregunta.
Saludos