2017-03-04 5 views
1

Ich arbeite an einer Anwendung, die eine Berechtigung für den Zugriff auf Google Kalender benötigt. Ich verwende den PHP-Client und kann offline auf diese Kalender zugreifen. Mein Problem ist wie folgt: Wie kann ich zu einem späteren Zeitpunkt auf die Kalender für bestimmte Benutzer zugreifen? Wie erstelle ich ein Clientobjekt für einen bestimmten Benutzer (der mir bereits die Berechtigung zum Zugriff auf seine Kalender erteilt hat), wenn ich es brauche?Google API Offline-Zugriff auf Benutzerdaten

Ich habe es geschafft, eine Client-ID mithilfe des Bereichs Google_Service_Oauth2::USERINFO_EMAIL zu extrahieren, aber wie kann ich diese Benutzerkalender zu einem späteren Zeitpunkt verwenden? Ist das überhaupt so, oder gehe ich in die falsche Richtung?

Antwort

1

Es gibt verschiedene Ansätze, um dies zu erreichen. Da Sie in Ihrem Fall nur auf den Benutzerkalender zugreifen möchten, sind die Bereiche, die Sie in Ihre Anforderungen aufnehmen sollten, die angegebenen here. Ihre Clientkonfiguration sollte $client->setAccessType("offline"); und $client->setApprovalPrompt("force");

haben. Nach dem Zugriff wird Ihnen ein Zugriffscode zurückgegeben, den Sie gegen ein Zugriffstoken eintauschen können. Das zurückgegebene Zugriffstoken muss in einer Datenbank gespeichert werden. Später, wenn der Benutzer den Kalenderdienst verwenden muss, verwenden Sie einfach das bereits gespeicherte Zugriffs-Token.

Wenn Sie Code-Details benötigen, dann geben Sie bitte die Code-Details an, da wir nicht vollständig verstehen können, was Sie erreichen möchten, ohne Ihre Implementierung zu betrachten.

Nehmen Sie zum Beispiel das folgende Code-Snippet.

/* 
* @$accessToken - json encoded array (access token saved to database) 
*/ 

$client = new Google_Client(); 
$client->setAuthConfig("client_secret.json"); 
$client->addScope("https://www.googleapis.com/auth/calendar"); 

$_SESSION["access_token"] = json_decode($accessToken, true); 

$client->setAccessToken($_SESSION['access_token']); 
$service = new Google_Service_Calendar($client); 

//REST OF THE PROCESS HERE 
+0

Hallo @Morfinismo, danke für Ihre Hilfe! Können Sie ein Codebeispiel zeigen, wie ich mit dem Token später auf den Benutzerkalender zugreifen kann? Ich kann es nicht herausfinden. – Cellydy

+0

@Cellydy Ich habe die Antwort aktualisiert. Bitte hilf mir, dir zu helfen. Bitte zeigen Sie uns, was Sie tun, damit wir Ihnen besser helfen können. – Morfinismo

Verwandte Themen