Cómo va todo?
Pues resulta que estoy desarrollando un sistema de backup remota de una web a mi Googel Drive, dicho sistema funcionaba bien hasta hace unos días, pero no sé que paso en los últimos días que de repente dejó de funcionar, por el error que me da tiene que ser algo de tokens, pero no lo acabó de entender. Así pues os pido ayuda, el error que me lanza 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."
Y mi código es el siguiente:
Código:
<?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();
?>
Es posible que tenga que ver con algo de tema de certificados de servidor?
Gracias a todos los que leáis la pregunta y muchas gracias a los que aportéis ideas.
Saludos