Automatisch aktualisieren token mit google drive api mit php-Skript

Folgte ich wieder DIESES TUTORIAL zum hochladen einer Datei auf Google Drive mit php, direkt von meinem REMOTE-SERVER: so ich erstellt habe, neue API-Projekt von Google API-Konsole aktiviert Drive-API-service, angefordert OAuth Client ID und Client Secret, schrieb Sie in einem Skript verwenden, dann laden Sie es zusammen mit Google APIs Client Library for PHP Ordner zu diesem http://www.MYSERVER.com/script1.php, abgerufen Auth-code:

<?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);

?>

Wenn ich Besuch http://www.MYSERVER.com/script1.php ich ermöglichen die Autorisierung und erhalten Sie den Auth-code, den ich schreiben kann, in ein zweites Skript. Dann lade ich es auf http://www.MYSERVER.com/script2.php, die sieht aus wie:

<?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);

?>

Gut, jetzt wird die Datei drive.txt hochgeladen auf mein Google Drive und die Struktur der token.json-Datei ist eine Art von:

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

Nun, wie Sie sich vorstellen können, die ich anrufen kann script2.php und der upload-Datei bis zu einem bestimmten Zeitpunkt. Endlich, der Punkt ist: ich nicht wollen, der token abläuft, ich nicht zulassen möchten, dass Berechtigung jedes mal es abläuft (vgl. script1.php): ich brauche zu nennen, die script2.php in regelmäßigen Abständen während des Tages, zu dem hochladen meiner Datei automatisch, ohne Benutzer-Interaktion. Also, was ist der beste Weg, um automatisch aktualisieren der token für immer in diesem Kontext? Brauche ich ein anderes Skript? Kann ich einige Codezeilen hinzufügen script2.php? oder ändern Sie die token.json-Datei? Und wo kann ich Lesen Sie die Verbleibende Zeit, bevor das token abläuft? Danke!

InformationsquelleAutor Huxley | 2013-04-09
Schreibe einen Kommentar