Automatisch Token mit Google Drive API mit PHP-Skript aktualisieren

8

Ich habe erneut DIESES TUTORIAL verfolgt, um eine Datei auf Google Drive hochzuladen mit php, direkt von meinem REMOTE SERVER: also habe ich ein neues API Projekt von Google API Console erstellt, Drive API Service aktiviert, OAuth Client ID und Client Secret angefordert, sie in ein Skript geschrieben und dann zusammen mit Google APIs Client Library für PHP Ordner zu diesem Ссылка , um den Auth-Code abzurufen:

%Vor%

Wenn ich Ссылка besuche, erlaube ich Autorisierung und erhalte den Auth-Code, den ich schreiben kann in einem zweiten Skript. Dann lade ich es zu Ссылка hoch, das wie folgt aussieht:

%Vor%

Nun, jetzt ist die Datei drive.txt auf meinem Google Drive hochgeladen und die Struktur der Datei token.json ist eine Art:

%Vor%

Nun, wie Sie sich vorstellen können, kann ich script2.php aufrufen und die Datei bis zu einer bestimmten Zeit hochladen. Schließlich ist der Punkt: Ich möchte nicht das Token ablaufen lassen, ich will keine Autorisierung zulassen jedes Mal, wenn es abläuft (Aufruf von script1.php): I Ich muss die script2.php regelmäßig während des Tages aufrufen, um meine Datei automatisch hochzuladen, ohne Benutzerinteraktion . Also, was ist der beste Weg, das Token in diesem Kontext für immer automatisch zu aktualisieren? Brauche ich ein anderes Skript? Kann ich script2.php etwas Code hinzufügen? oder ändern Sie die Datei token.json? Und wo kann ich die verbleibende Zeit bis zum Ablauf des Tokens ablesen? Vielen Dank!

    
Huxley 09.04.2013, 14:46
quelle

2 Antworten

30

Sie müssen nicht regelmäßig nach einem Zugriffstoken fragen. Wenn Sie ein refresh_token haben, erwirbt der PHP-Client automatisch ein neues Zugangstoken für Sie.

Um ein refresh_token zu erhalten, müssen Sie access_type auf "offline" setzen und Offlinezugriffsrechte anfordern:

%Vor%

Sobald Sie code erhalten haben,

%Vor%

Stellen Sie bei zukünftigen Anforderungen sicher, dass das aktualisierte Token immer festgelegt ist:

%Vor%

Wenn Sie eine Kraftzugriffstokenaktualisierung möchten, können Sie dies tun, indem Sie refreshToken :

aufrufen %Vor%

Vorsicht, refresh_token wird nur am ersten $drive->authenticate() zurückgegeben, Sie müssen es dauerhaft speichern. Um ein neues refresh_token zu erhalten, müssen Sie Ihr bestehendes Token widerrufen und den Auth-Prozess erneut starten.

Der Offline-Zugriff wird ausführlich in der Google OAuth 2.0-Dokumentation erläutert.

    
Burcu Dogan 09.04.2013, 15:07
quelle
1

Nachdem ich viel durchgemacht habe, habe ich das zum Laufen gebracht. Ich verwende eine Datei / ein Skript, um das Offline-Token zu erhalten, und dann eine Klasse, um mit der API zu arbeiten:

%Vor%

Sie können das Aktualisierungstoken aus der Datei laden und für den Offlinezugriff verwenden:

%Vor%

Mehr hier: Ссылка

    
Yannis Giovanos 06.08.2015 09:09
quelle