2017-03-04 2 views
1

Je travaille sur une application qui nécessite l'autorisation d'accéder aux utilisateurs des calendriers Google. J'utilise le client PHP et je peux obtenir un accès hors ligne à ces calendriers. Mon problème est le suivant: une fois que j'ai l'autorisation, comment puis-je accéder aux calendriers pour un utilisateur spécifique à une date ultérieure? Comment puis-je créer un objet client pour un utilisateur spécifique (qui m'a déjà donné l'autorisation d'accéder à leurs calendriers) quand j'en ai besoin?API Google Accès hors ligne aux données utilisateur

J'ai réussi à extraire un ID de client en utilisant la portée Google_Service_Oauth2::USERINFO_EMAIL mais comment puis-je l'utiliser pour obtenir ces calendriers utilisateurs à une date ultérieure? Est-ce la même chose que je devrais faire ou suis-je dans la mauvaise direction?

Répondre

1

Il existe plusieurs approches possibles pour y parvenir. Dans votre cas, étant donné que vous souhaitez uniquement accéder au calendrier utilisateur, les étendues que vous devez inclure dans vos demandes sont celles spécifiées here. Après avoir autorisé l'accès, vous recevrez un code d'accès que vous pouvez échanger contre un jeton d'accès. Votre configuration client doit avoir $client->setAccessType("offline"); et $client->setApprovalPrompt("force");

Le jeton d'accès renvoyé est celui que vous devez enregistrer dans une base de données. Plus tard, si l'utilisateur a besoin d'utiliser le service de calendrier, il vous suffit d'utiliser le jeton d'accès que vous avez déjà enregistré.

Si vous avez besoin de spécificités de code, veuillez envoyer des informations spécifiques au code car nous ne sommes pas en mesure de comprendre parfaitement ce que vous essayez d'accomplir sans avoir à examiner votre implémentation. Prenez par exemple l'extrait de code suivant:

/* 
* @$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

Salut @Morfinismo, merci pour votre aide! Pourriez-vous afficher un exemple de code sur la façon dont je pourrais utiliser le jeton pour accéder ultérieurement au calendrier des utilisateurs? Je n'arrive pas à comprendre. – Cellydy

+0

@Cellydy J'ai mis à jour la réponse. S'il vous plaît, aidez-moi à vous aider. S'il vous plaît montrez-nous ce que vous faites afin que nous puissions mieux vous aider. – Morfinismo