2017-03-08 2 views
0

J'ai un site Web de propriétés dans lequel j'ai répertorié plusieurs propriétés. Chaque établissement dispose d'un calendrier Google et lorsque la propriété est réservée ce jour-là, une note est ajoutée ce jour-là pour ce calendrier particulier.Exemple de base de l'API Google Calendar à l'aide de l'API Google Client PHP

Je faisais tout cela manuellement, où je mettais à jour le code HTML du site en montrant la disponibilité avec une mise en page comme celle-ci.

enter image description here

Maintenant, je suis en train de faire tout cela automatisé en utilisant l'API Google Agenda où je peux afficher la réservation de chaque propriété dans un calendrier comme l'exemple ci-dessus.

Je suis en train d'utiliser l'API Google PHP Client Library qui est situé à https://github.com/google/google-api-php-client

Mon plus gros problème ici est que je ne peux pas trouver un exemple de base de ce aussi sur Internet. Les pages Google ne montrent pas les exemples complets. Par exemple, la page guide de Google ne montre qu'un exemple de "livres", dont je n'ai pas besoin du tout. J'ai cherché partout sur Internet quelques exemples basiques du code mais je n'ai pas pu le trouver du tout. Je recherche stackoverflow lui-même mais tous les codes que j'ai trouvé sont vraiment déroutants et tous sont différents. De plus, la plupart d'entre eux le savent déjà, donc il n'y a aucun moyen de comprendre ce qui est nécessaire.

Si quelqu'un a un exemple simple où je peux tirer des événements d'un jour d'un calendrier, veuillez le poster ici.

Aussi si vous connaissez d'une autre manière d'afficher la disponibilité comme l'image ci-dessus, serait une aide précieuse!

Merci.

+0

Suivez la documentation https://developers.google.com/google-apps/calendar/quickstart/php et si vous avez des erreurs, faites-le nous savoir. – Morfinismo

+0

Répondez à la question après l'avoir lu mec .... –

+0

Je l'ai fait. J'essaie juste de t'aider. Ne vous attendez pas à ce que nous fassions tout pour vous si vous n'avez pas encore essayé quelque chose et que vous ne publiez pas le code que vous utilisez. Peut-être que ce post peut vous donner une idée http://stackoverflow.com/questions/42177931/google-calendar-api-get-events-on-current-week. Bonne chance! – Morfinismo

Répondre

1

Que diable, je vais reposter une réponse que j'accorderai this question:

if($refresh_token_accessed_from_my_database) { 
      //If session contains no valid Access token, get a new one 
      if ($client->isAccessTokenExpired()) { 
       $client->refreshToken($refresh_token_accessed_from_my_database); 
      } 
      //We have access token now, launch the service 
      $this->service = new Google_Service_Calendar($client); 
     } 
     else { 
      //User has never been authorized, so let's ask for the ok 
      if (isset($_GET['code'])) { 
       //Creates refresh and access tokens 
       $credentials = $client->authenticate($_GET['code']); 

       //Store refresh token for further use 
       //I store mine in the DB, I've seen others store it in a file in a secure place on the server 
       $refresh_token = $credentials['refresh_token']; 
       //refresh_token->persist_somewhere() 

       //Store the access token in the session so we can get it after 
       //the callback redirect 
       $_SESSION['access_token'] = $client->getAccessToken(); 
       $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
       header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
      } 

      if (!isset($_SESSION['access_token'])) { 
       $auth_url = $client->createAuthUrl(); 
       header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); 
      } 

      if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { 
       $client->setAccessToken($_SESSION['access_token']); 
       $this->service = new Google_Service_Calendar($client); 
      } 

Quand je construit mon projet, je commencé à partir du tutoriel post Morfinismo dans les commentaires, mais j'ai eu quelques problèmes suivants celui-là. J'ai fait des commentaires pour décrire le flux général et quelques points problématiques potentiels, vous pouvez vouloir comparer ces notes avec l'autre tutoriel si vous n'êtes pas trop clair sur ce qui se passe.