1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
SELON fFichierExiste(CompteGmail.Token.Dossier + procFichierGMail())
CAS Faux // Si les tokens ne sont pas trouver alors ont les récupère et ont les sauvegarde dans un fichier
// On va utiliser une fenêtre HTML plutôt que d'ouvrir un navigateur
buf est un Buffer = Ouvre(FEN_HTML, procURIGMail())
SI buf = "" ALORS
procMessageBoxErreur("Impossible d'autoriser le logiciel à utiliser GMail.", procCouleurGeneral())
RENVOYER Faux
FIN
Variant = JSONVersVariant(buf)
sError est chaîne = Variant.error_description
SI sError <> "0" ALORS
procMessageBoxErreur(sError, procCouleurGeneral())
RENVOYER Faux
FIN
CompteGmail.Token.Acces = Variant.access_token
CompteGmail.Token.Refresh = Variant.refresh_token
CompteGmail.Token.LimiteValidité = DateHeureSys()
CompteGmail.Token.LimiteValidité..Minute += 55 // Accès Token valide 60 minutes mais par sécurité, le rendre valide uniquement 55 minutes.
Variant.DateHeureLimite = CompteGmail.Token.LimiteValidité
fSauveTexte(CompteGmail.Token.Dossier + procFichierGMail(), VariantVersJSON(Variant))
CAS Vrai // Si les tokens sont trouver alors ont vérifie la validité de l'Acces Token
Variant = JSONVersVariant(fChargeTexte(CompteGmail.Token.Dossier + procFichierGMail()))
CompteGmail.Token.Acces = Variant.access_token
CompteGmail.Token.Refresh = Variant.refresh_token
CompteGmail.Token.LimiteValidité = Variant.DateHeureLimite
SI DateHeureSys() > CompteGmail.Token.LimiteValidité // Si la DateHeureSys est supérieure a la date limite de validité de l'Acces Token alors il faut en récupérer un nouveau
REQ_AccesToken est une httpRequête
REQ_AccesToken.URL = CompteGmail.OAuth..URLToken + ["?"]
REQ_AccesToken.Contenu = URLEncode(ChaîneVersUTF8(ChaîneConstruit("client_id=%1&client_secret=%2&refresh_token=%3&grant_type=refresh_token",...
CompteGmail.OAuth.ClientID, CompteGmail.OAuth.ClientSecret, CompteGmail.Token.Refresh)))
REP_AccesToken est une httpRéponse = HTTPEnvoie(REQ_AccesToken)
SI ErreurDétectée = Vrai ALORS
Erreur(ErreurInfo(errMessage))
SINON
Variant = JSONVersVariant(REP_AccesToken.Contenu)
Variant.refresh_token = CompteGmail.Token.Refresh
CompteGmail.Token.Acces = Variant.access_token
CompteGmail.Token.LimiteValidité = DateHeureSys()
CompteGmail.Token.LimiteValidité..Minute += 55 // Acces Token valide 60 minutes mais par sécurité, le rendre valide uniquement 55 minutes.
fSauveTexte(CompteGmail.Token.Dossier + procFichierGMail(), VariantVersJSON(Variant))
FIN
FIN
FIN |
Partager