PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2025 → Connexion tiers à Google Agenda
Connexion tiers à Google Agenda
Débuté par Laurent A., 16 mai 2015 11:36 - 3 réponses
Membre enregistré
113 messages
Posté le 16 mai 2015 - 11:36
Bonjour,
J'ai une appli webdev sur laquelle des clients s'inscrivent puis valident avec oauth 2 de google l'autorisation d'accés à leur agenda google.
Jusque là tout fonctionne parfaitement.
Cependant je souhaite qu'un tiers (à qui n'appartient pas l'agenda) puisse ajouter des RDV sur l'agenda du client mais dans ce cas l'appli demande a chaque fois l'autorisation d'accés hors connexion.
J'ai bien vu que l'on pouvais utiliser la persistance mais où enregistrer le fichier XML, car le tiers qui ajoute le rdv peut utiliser n'importe quel ordinateur.
Je souhaiterais que si l'application a autorisée à agir sur l'agenda du client, que l'administrateur (tiers) puisse ajouter des rdv sur le compte agenda google du client sans renouveler l'autorisation à chaque fois.

Une astuce ? ai-je fais une erreur? J'oublié quelque chose ?
Merci d'avance.
Laurent.

Code utilisé par le tiers pur ajouter un RDV.
// ATTENTION : A PARTIR DE LA VERSION 20, LE TYPE GGLCONNEXION CHANGE
// Connexion utilisant le mode d'authentification "OAuth 2.0"
Cnx est un gglConnexion
Cnx..Email = Eleve.GooLogin //"email_utilisateur_final@gmail.com"
Cnx..ClientID ="3s21df32sd1g32d1g3sd1fg3sd2f1g32gum9ari.apps.googleusercontent.com" //"387756281032-qffa6dajjd5348iqhi558dkd98xxxxxx.apps.googleusercontent.com"
Cnx..ClientSecret = "sdfqsd9f784d6f4qds546s5df4" //"S13DCA6KkYh1EgPv9-jLxxxh"
// Lors de la connexion, l'utilisateur devra valider les services utilisés
// (Consultez les exemples supplémentaires pour plus de détails)

SI GglConnecte(Cnx,gglServiceAgenda) = Faux ALORS
Erreur("impossible de se connecter, veuillez vérifier vos données")

SINON

tabAgendas est un tableau de 0 gglAgenda
tabAgendas = GglListeAgenda(Cnx)

// Récupère les événements futurs du premier agenda
GglRemplitAgenda(Cnx,tabAgendas[1])

// Création d'un événement
MonEvénement est un gglEvénement
MonEvénement..DateDébut = "20150520085000"
MonEvénement..DateFin = "20150520093000"
MonEvénement..Titre = "Rendez-vous"
MonEvénement..Contenu = "Rendez-vous concernant le bilan du mois de novembre"

// Ajout de l'événement dans l'agenda
SI Ajoute(tabAgendas[1]..Evénement, MonEvénement)=Vrai ALORS
Info("Ajouté")
FIN

// Mise à jour de l'agenda sur le serveur
SI GglEcrit(Cnx, tabAgendas[1])=Vrai ALORS
Info("Ecrit")
FIN

FIN
Membre enregistré
113 messages
Posté le 18 mai 2015 - 17:40
Personne ne rencontre ce problème ?
Posté le 18 mai 2015 - 19:52
Bonjour Laurent,

si j'ai bien compris la question :

J'ai bien vu que l'on pouvais utiliser la persistance mais où
enregistrer le fichier XML, car le tiers qui ajoute le rdv peut utiliser
n'importe quel ordinateur.


Dans un champ mémo texte ou binaire de la base de données, avec comme
clé le compte concerné ?

Je souhaiterais que si l'application a autorisée à agir sur l'agenda du
client, que l'administrateur (tiers) puisse ajouter des rdv sur le
compte agenda google du client sans renouveler l'autorisation à chaque
fois.


A partir de la, en fonction du compte, il n'y a qu'a lire l'enreg+le
champ mémo et réutiliser le fichier.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Disponible : WXShowroom.com, WXReplication (open source)
Bientôt : WXEDM (open source)
Plus d'information sur http://fabriceharari.com

Une astuce ? ai-je fais une erreur? J'oublié quelque chose ?
Merci d'avance.
Laurent.

Code utilisé par le tiers pur ajouter un RDV.
// ATTENTION : A PARTIR DE LA VERSION 20, LE TYPE GGLCONNEXION CHANGE
// Connexion utilisant le mode d'authentification "OAuth 2.0"
Cnx est un gglConnexion
Cnx..Email = Eleve.GooLogin //"email_utilisateur_final@gmail.com"
Cnx..ClientID
="3s21df32sd1g32d1g3sd1fg3sd2f1g32gum9ari.apps.googleusercontent.com" //"387756281032-qffa6dajjd5348iqhi558dkd98xxxxxx.apps.googleusercontent.com"
Cnx..ClientSecret = "sdfqsd9f784d6f4qds546s5df4"
//"S13DCA6KkYh1EgPv9-jLxxxh" // Lors de la connexion, l'utilisateur
devra valider les services utilisés
// (Consultez les exemples supplémentaires pour plus de détails)

SI GglConnecte(Cnx,gglServiceAgenda) = Faux ALORS
Erreur("impossible de se connecter, veuillez vérifier vos données")

SINON

tabAgendas est un tableau de 0 gglAgenda tabAgendas = GglListeAgenda(Cnx)
// Récupère les événements futurs du premier agenda
GglRemplitAgenda(Cnx,tabAgendas[1])

// Création d'un événement
MonEvénement est un gglEvénement
MonEvénement..DateDébut = "20150520085000"
MonEvénement..DateFin = "20150520093000"
MonEvénement..Titre = "Rendez-vous"
MonEvénement..Contenu = "Rendez-vous concernant le bilan du mois de
novembre"

// Ajout de l'événement dans l'agenda
SI Ajoute(tabAgendas[1]..Evénement, MonEvénement)=Vrai ALORS
Info("Ajouté")
FIN

// Mise à jour de l'agenda sur le serveur
SI GglEcrit(Cnx, tabAgendas[1])=Vrai ALORS
Info("Ecrit")
FIN

FIN
Membre enregistré
113 messages
Posté le 18 mai 2015 - 22:16
Mais oui bien sur je vais essayer.
Merci fabrice