Atualizar automaticamente o token usando o google drive api com script php

Eu segui de novoESTE TUTORIAL para fazer upload de um arquivo no Google Drive com php diretamente do meu REMOTE SERVER: então, criei o novo API Project no Google API Console, ativei o serviço da API do Google Drive, solicitei o ID do cliente OAuth e o Client Secret, escrevi-os em um script e enviei junto comBiblioteca de clientes de APIs do Google para PHP pasta para estehttp://www.MYSERVER.com/script1.php, para recuperar o código do Auth:

<?php

require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';

$drive = new Google_Client();

$drive->setClientId('XXX'); // HERE I WRITE MY Client ID

$drive->setClientSecret('XXX'); // HERE I WRITE MY Client Secret

$drive->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');

$drive->setScopes(array('https://www.googleapis.com/auth/drive'));

$gdrive = new Google_DriveService($drive);

$url = $drive->createAuthUrl();
$authorizationCode = trim(fgets(STDIN));

$token = $drive->authenticate($authorizationCode);

?>

Quando eu visitohttp://www.MYSERVER.com/script1.php I permitir autorização e obtenha o código Auth que eu posso escrever em um segundo script. Então eu carrego parahttp://www.MYSERVER.com/script2.php, quem parece:

<?php

require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';

$drive = new Google_Client();

$drive->setClientId('X');  // HERE I WRITE MY Client ID
$drive->setClientSecret('X');  // HERE I WRITE MY Client Secret
$drive->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');
$drive->setScopes(array('https://www.googleapis.com/auth/drive'));

$gdrive = new Google_DriveService($drive);

$_GET['code']= 'X/XXX'; // HERE I WRITE AUTH CODE RETRIEVED AFTER RUNNING REMOTE script.php

file_put_contents('token.json', $drive->authenticate());

$drive->setAccessToken(file_get_contents('token.json'));

$doc = new Google_DriveFile();

$doc->setTitle('Test Drive');
$doc->setDescription('Document');
$doc->setMimeType('text/plain');

$content = file_get_contents('drive.txt');

$output = $gdrive->files->insert($doc, array(
      'data' => $content,
      'mimeType' => 'text/plain',
    ));

print_r($output);

?>

Bem, agora o arquivo drive.txt é carregado no meu Google Drive e a estrutura do arquivo token.json é uma espécie de:

{"access_token":"XXX","token_type":"Bearer","expires_in":3600,"refresh_token":"YYY","created":1365505148}

Agora, como você pode imaginar, posso chamar script2.php e fazer o upload do arquivo até um certo tempo. Finalmente, o ponto é: eunão quero o token expirar, eunão quer permitir autorização cada vez que expirar (lembrando script1.php): Eu preciso chamar o script2.php periodicamente durante o dia, para carregar meu arquivo automaticamente,sem interação do usuário. Então, qual é a melhor maneira deatualizar automaticamente o token para sempre neste contexto? Eu preciso de outro script? Posso adicionar algum código ao script2.php? ou modificar o arquivo token.json? E onde posso ler o tempo restante antes do token expirar? Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion