DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions Google
  • Récupérer un événement dans un agenda
  • Récupérer un contact
GglRequête (Exemple)
Récupérer un événement dans un agenda
Cet exemple permet d'effectuer une requête pour récupérer un événement précis dans un agenda précis.
googleConnexion est un gglConnexion
googleConnexion.Email = "nomutilisateur@gmail.com"
googleConnexion.ClientID = ...
"568705434218-sed6r7rgd7alcnbehs67f1k5s6i4q.apps.googleusercontent.com"
googleConnexion.ClientSecret = "kshKqXQPxUWmGLDiyBcmrCR2"
 
// Connexion au compte Google
SI PAS GglConnecte(googleConnexion, ...
gglServiceAgenda + gglServiceContacts) ALORS
Erreur(ErreurInfo())
RETOUR
SINON
// Connecté
// pour faire une requête qui récupère un événement précis dans un agenda précis
 
// 1 - Il faut donc d'abord un identifiant d'agenda Google
sIdAgenda est une chaîne
tabAgenda est un tableau de gglAgendas
tabAgenda = GglListeAgenda(googleConnexion, gglTous)
unAgenda est un gglAgenda
POUR TOUT unAgenda DE tabAgenda
SI unAgenda.Titre = "Titre de l'Agenda recherché" ALORS
sIdAgenda = unAgenda.Identifiant
// Valeur du type : gi57430lh5j58ddife6nmbqilk@group.calendar.google.com
SORTIR
FIN
FIN
SI sIdAgenda = "" ALORS
Info("Agenda non trouvé")
RETOUR
FIN
 
// 2 - Il faut ensuite un identifiant d'événement Google
sIdEvenement est une chaîne = "5lq85na71prritap8llpoo5cl8_20150107T070000Z"
// Cet identifiant doit initialement être récupéré
// à l'origine d'une variable de type gglEvénement
// (via la propriété Identifiant)
 
// 3 - Lance la requête Google
// Information sur les possibilités des requêtes Google
// dans la documentation Google au 01/01/2015 ici :
// https://developers.google.com/google-apps/calendar/v3/reference/events
// - Il faut faire une requête GET sur :
// https://www.googleapis.com/calendar/v3/calendars/<calendarId>/events/<eventId>
// - Paramètres (optionnels) : alwaysIncludeEmail, timeZone, maxAttendees,
// Nom des champs à inclure
sReponseJsonGgl est une chaîne
sReponseJsonGgl = GglRequête(googleConnexion, ...
gglServiceAgenda,... //Requête au service Agenda
"https://www.googleapis.com/calendar/v3/calendars/" + ...
URLEncode(sIdAgenda) + "/events/" + URLEncode(sIdEvenement), ... // URL
"alwaysIncludeEmail=true&timeZone="+ ...
"Europe/Paris&maxAttendees=10", ...//Paramètres (optionnels)
gglHTTPGet) //Requête HTTP Get
 
// Erreur ou réponse non JSON de Google
SI ErreurDétectée _OU_ SansEspace(sReponseJsonGgl)[[1]] <>"{" ALORS
Erreur("Echec de la récupération de l'événement", ...
sReponseJsonGgl, ErreurInfo())
RETOUR
FIN
 
// Récupération automatique dans un variant
soit strReponseGoogle =JSONVersVariant(sReponseJsonGgl)
// ou récupération dans une structure décrite avant (décrite ici au 01/01/2015 :
// https://developers.google.com/google-apps/calendar/v3/reference/events)
// strEvenementGoogle est un STgglEvents
// Désérialise(strEvenementGoogle,sReponseJsonGgl,psdJSON)
 
Info("Evénement du " + ChaîneVersDate(strReponseGoogle.start.dateTime[[À 10]], ...
"AAAA-MM-JJ") + ChaîneVersHeure(strReponseGoogle.start.dateTime[[12 À 19]],...
"HH:MM:SS")+...//format : 2014-11-25T14:00:00+01:00
" au " + ChaîneVersDate(strReponseGoogle.end.dateTime[[À 10]],"AAAA-MM-JJ") + ...
ChaîneVersHeure(strReponseGoogle.end.dateTime[[12 À 19]],...
"HH:MM:SS"),...//format : 2014-11-25T15:30:00+01:00
"Créé par : " + strReponseGoogle.creator.email, ...
"Titre : " + strReponseGoogle.summary, ...
"Détails : " + strReponseGoogle.description, ...
"Mise à jour : " + strReponseGoogle.updated)
FIN
Récupérer un contact
Cet exemple permet d'effectuer une requête pour récupérer un contact avec tous les détails dont l'adresse détaillée.
googleConnexion est un gglConnexion
googleConnexion.Email = "nomutilisateur@gmail.com"
googleConnexion.ClientID = ...
"568705434218-sed6r7rgd7alcnbehs67f1k5s6ixqz84q.apps.googleusercontent.com"
googleConnexion.ClientSecret = "kshKqXQPxUWmGLDiyBcmrCR2"
 
// Connexion au compte Google
SI PAS GglConnecte(googleConnexion, gglServiceContacts) ALORS
Erreur(ErreurInfo())
RETOUR
SINON
// Connecté
// pour faire une requête qui récupère un contact précis dans un compte Google
// 1 - Il faut donc d'abord un compte Google
sCompteGoogle est une chaîne = googleConnexion.Email //ou "default"
 
// 2 - Il faut ensuite un identifiant de contact
googleContact est un gglContact
// GglListeContactParRequête(
// Le premier contact
taContactGGl est un tableau de gglContacts = GglListeContact(googleConnexion)
googleContact = taContactGGl[1]
// uniquement la dernière partie de l'identifiant
sIdContactGoogle est une chaîne = ExtraitChaîne(googleContact.Identifiant, ...
1, "/", DepuisFin)
 
//3 - Lance la requête Google
// Information sur les possibilités des requêtes Google
// dans la documentation Google au 01/01/2015:
// https://developers.google.com/google-apps/contacts/v3/index#retrieving_a_single_contact
// - Il faut faire une requête POST sur :
// https://www.google.com/m8/feeds/contacts/<CompteId>/<full/<ContactID>
// - Paramètres (optionnels) :
// v=3.0 pour avoir le détails complet,
// et alt=json pour avoir le résultat en json et pas en xml
sReponseJsonGgl est une chaîne
sReponseJsonGgl = GglRequête(googleConnexion, ...
gglServiceContacts, ...//Requête au service Agenda
"https://www.google.com/m8/feeds/contacts/" + URLEncode(sCompteGoogle) + ...
"/full/" + URLEncode(sIdContactGoogle)+"?v=3.0&alt=json", ... //URL
"", ... //Paramètres (optionnels)
gglHTTPGet) // Requête HTTP Get
// Erreur ou réponse non Json de Google ?
SI ErreurDétectée _OU_ SansEspace(sReponseJsonGgl)[[1]] <> "{" ALORS
Erreur("Echec de la récupération de l'événement", sReponseJsonGgl, ErreurInfo())
RETOUR
FIN
// Récupération du Json dans une structure
// (voir https://developers.google.com/google-apps/contacts/v3/reference)
soit strReponseJsonGgl = JSONVersVariant(sReponseJsonGgl)
 
Info("Civilité : " + strReponseJsonGgl.entry.gd$name.gd$namePrefix.$t, ...
"Prénom : " + strReponseJsonGgl.entry.gd$name.gd$givenName.$t, ...
"Nom : " + strReponseJsonGgl.entry.gd$name.gd$familyName.$t, ...
"Suffixe : " + strReponseJsonGgl.entry.gd$name.gd$nameSuffix, ...
"Deuxième prénom : " + strReponseJsonGgl.entry.gd$name.gd$additionalName.$t, ...
"Rue : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$street.$t, ...
"Quartier : " + ...
strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$neighborhood.$t, ...
"Boîte postale : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$pobox.$t, ...
"Code postal : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$postcode.$t, ...
"Ville : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$city.$t, ...
"Région : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$region.$t, ...
"Pays : " + strReponseJsonGgl.entry.gd$structuredPostalAddress[1].gd$country.$t)
FIN
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale