La double autentification est imposée par Google afin de permettre l'accès aux emails de GMail.

 

Afin de permettre la relève d'emails dans un compte Google avec le protocole IMAP depuis une application, il faut donc :

  • déclarer l'application auprès de Google,
  • mettre en place une authentification OAuth 2 au niveau de l'application.

Voici un exemple de procédure complète pour récupérer les identifiants ClientID et ClientSecret nécessaires à la double authentification. Les images ci-dessous sont celles du site développeur de Google ce jour. Les choix peuvent évoluer dans le temps, mais le principe de déclaration restera le même.

 

## Déclaration de l'application auprès de Google ##

 

Pour utiliser la double authentification sur un compte GMail, il est nécessaire de déclarer l'application auprès de Google.

 

1. Créer un compte Gmail pour le développeur de l'application.

2. Se connecter au portail développeurs de Google : https://console.developers.google.com/ avec ce compte.

3. Dérouler le menu des projets et cliquer sur "Nouveau projet"



4. Saisir le nom du projet, par exemple : "WD Gestion Emails" et cliquer sur "Créer"

 

 

5. Sélectionner le projet dans la liste déroulante. Cliquer sur "Ecran d'autorisation OAuth" dans la barre latérale gauche.

6. Cliquer sur "Configurer l'écran d'autorisation", choisir le mode d'utilisation de l'application : "Interne", si vous disposez d'un compte GSuite ou "Externe" dans les autres cas puis cliquer sur "Créer".

 

7. Renseigner les infos obligatoires de l'application :

  • le nom de l'application : c'est le nom qui apparaitra dans la fenêtre de connexion OAuth,
  • l'adresse email de l'assistance utilisateur,
  • l'adresse email du développeur.

Vous pouvez également renseigner les informations facultatives.


ATTENTION : si vous spécifiez un logo, il sera nécessaire d'attendre que Google approuve votre application pour utiliser OAuth. De plus, une fois qu'un logo est défini, il n'est pas possible de l'enlever. Il est conseillé de ne pas indiquer de logo pendant les phases de développement/mise au point.

Cliquer ensuite sur "Enregistrer et continuer"


 

8. Dans la partie "Niveau d'accès", laisser les choix par défaut et cliquer sur "Enregistrer et continuer".

9. Dans la partie "Informations facultatives", laisser les choix par défaut et cliquer sur "Enregistrer et continuer".

10. Cliquer sur "Identifiants" dans la barre latérale gauche puis cliquer sur "Créer des identifiants" et choisir "ID client OAuth".

 

Choisir le type "Application de bureau" et saisir le nom de l'application puis cliquer sur "Créer".

6. Copier l'ID Client et le code secret et reportez-les dans l'exemple de la LST (ou dans le code de votre application).

## Mise en place dans le code de l'application ##

 

La structure OAuth2Paramètres doit être remplie avec les informations suivantes :

  • `OAuth2Params.ClientID` : l'identifiant de l'application obtenu ci-dessus,
  • `OAuth2Params.ClientSecret` : le code secret de l'application obtenu ci-dessus,
  • `OAuth2Params.URLAuth` : l'URL d'authentification, pour GMail il s'agit de `https://accounts.google.com/o/oauth2/auth`,
  • `OAuth2Params.URLToken` : l'URL de récupération d'un token OAuth, pour Gmail, il s'agit de `https://accounts.google.com/o/oauth2/token`,
  • `OAuth2Params.URLRedirection` : l'URL de redirection,
  • `OAuth2Params.Scope` : l'identifiant de la portion d'API Google à laquelle l'application veut acéder.
    Pour accéder aux email dans GMail, il faut indiquer `https://mail.google.com/`
  • `OAuth2Params.TypeRéponse` : le type de réponse attendue, dans le cas de la double authentification email, utiliser la constante `oauth2TypeRéponseCode`.

 

Le token OAuth renvoyé par la fonction AuthIdentifie peut être conservé entre deux exécutions de l'application. Pour cela, il suffit de le sérialiser dans un buffer et d'enregistrer ce buffer dans la base de données ou dans un fichier.

Le token OAuth a une durée de validité limitée. La date d'expiration d'un token peut être relue par la propriété DateExpiration. Quand le token est expiré, il n'est plus possible de l'utiliser pour accéder au serveur de mail. Dans ce cas, il suffit de le renouveler à l'aide de la fonction AuthRenouvelleToken.

 

Cas particulier d'une ouverture de session SMTP depuis le code serveur d'un site WEBDEV :

La propriété AuthToken du type emailSessionSMTP pour EmailOuvreSession a été proposée dans un premier temps sous WINDEV uniquement. Elle n'existait initialement pas en code serveur WEBDEV. La propriété est disponible pour le code serveur des sites WEBDEV à partir de la version 27 "Update 2".

 

 

 

< Retour

3 commentaires

chauvin
02/09/2021 - 10:02 - Répondre
Cette procédure n'est pas complète, il faut aussi définir les champs d'application ! il faut ajouter manuellement "https://mail.google.com" et sélectionner ensuite ce que l'on va utiliser dans cette API à savoir le client messagerie

Coucout
16/09/2022 - 23:55 - Répondre
Excellent

Frada
17/11/2022 - 16:02 - Répondre
sélectionner ensuite ce que l'on va utiliser dans cette API à savoir le client messagerie je n'ai pas trouvé où !? Merci

Publier un commentaire : 
Votre adresse email ne sera pas publiée