|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Office365 - Popup Connexion |
Débuté par Martin, 10 déc. 2018 10:07 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 5 messages |
|
Posté le 10 décembre 2018 - 10:07 |
Bonjour à tous,
En ce moment je travaille sur un projet d'application permettant de récupérer des infos d'Office 365 grâce à Microsoft Graph afin de créer des signatures mail Mon programme fonctionne correctement, j'arrive bien à récupérer les différentes informations.
Seulement, quand j'utile ma fonction AuthIdentifie(NomDeMaConnexion), je souhaiterai que ce soit une toute petite popup qui s'ouvre et non le navigateur entier J'ai beau chercher mais comme c'est mon premier projet utilisant des api, je n'arrive pas à trouver la solution à mon problème..
Est-ce que quelqu'un saurait m'aider ? Merci d'avance !
PS : Un exemple est disponible sur une vidéo de PC SOFT postée sur Youtube, "Comment utiliser les API Office 365 dans vos application" à 5min00. Mais en ouvrant l'exemple dans windev, je n'ai pas cette popup là |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 5 messages |
|
Posté le 12 décembre 2018 - 15:30 |
| |
| |
| | | |
|
| | |
| |
Posté le 12 décembre 2018 - 16:13 |
Bonjour, Moi aussi je cherche comment le desctiver avec le calendrier du google ,j'avais le popup avec la version 20 mais quand j'ai migré vers le 22 ou le 23 j'avais cette identification dans le navigateur . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 5 messages |
|
Posté le 08 janvier 2019 - 10:55 |
Réponse à moi même pour apporter la solution que j'ai trouvé, en espérant que ça puisse aider
Ne trouvant rien de spécifique concernant ce sujet, j'ai décidé de créer une fenêtre Windev avec un champ html, initialisé avec le lien permettant d'avoir le code d'autorisation pour Office365. Je traite ensuite ce code d'autorisation directement dans le code du champ HTML afin d'aller récupérer mon token, et ensuite je ferme la fenêtre de connexion.
Cette solution ne marche que pour Windows 7 ,8 & 10 malheureusement, le champs HTML n'affichant pas la page de connexion sur les versions antérieures. (Pour les versions antérieures à Windows 7, j'utilise AuthIdentifie() ) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 5 messages |
|
Posté le 08 janvier 2019 - 13:47 |
Voici donc le code de mon champ HTML (il n'y a pas de code ailleurs) Mes connaissances étant limités dans le domaine, ce n'est surement pas très propre. Mais en tout cas ça marche
Dans le code d'initialisation
HTM_PageConnexion = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?&client_id=MON_ID&scope=SCOPE_AUTORISATION&response_type=code&response_mode=query&redirect_uri=REDIRECTION&grant_type=authorization_code"
Dans le code "Fin de chargement du document HTML"
SI Contient(HTM_PageConnexion..Valeur,"code=") = Vrai ALORS
sMonCode est une chaîne = ExtraitChaîne(HTM_PageConnexion..Valeur,2,"code=") sMonCode = ExtraitChaîne(sMonCode,1,"&") MaRequête est une httpRequête MaRequête.Méthode = httpPost MaRequête.URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token" MaRequête.ContentType = "application/x-www-form-urlencoded" MaRequête.Contenu = "client_id=MON_ID&code="+sMonCode+"&scope=SCOPE_AUTORISATION&response_type=code&response_mode=query&redirect_uri=REDIRECTION&grant_type=authorization_code" MAReponseHTTP est une httpRéponse = HTTPEnvoie(MaRequête) SI MAReponseHTTP..CodeEtat = 200 ALORS Connexion est une OAuth2Paramètres Connexion..ClientID = MON_ID Connexion..ClientSecret = MON_MDP Connexion..URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize" Connexion..URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token" Connexion.Scope = SCOPE_AUTORISATION MonToken est un AuthToken(Connexion,MAReponseHTTP.Contenu) gsMonTokenO365 <= MonToken FIN Ferme() FIN
Et pour tester si on doit utiliser cette identification ou pas, en fonction de la version de windows
SI SysVersionWindows() = "10" OU SysVersionWindows() = "8" OU SysVersionWindows() = "7" ALORS Ouvre(FEN_CONNEXION) SINON Connexion est une OAuth2Paramètres Connexion..ClientID = MON_ID Connexion..ClientSecret = MON_MDP Connexion..URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize" Connexion..URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token" Connexion.Scope = SCOPE_AUTORISATION gsMonTokenO365 = AuthIdentifie(Connexion) Le but étant, peu importe la méthode, de finir avec le token contenu dans la variable gsMonTokenO365
En espérant que ça serve, et si vous avez des conseils d'amélioration je suis preneur !
PS : Les mots en majuscule sont des variables propres à chacunMessage modifié, 08 janvier 2019 - 13:57 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 20 messages |
|
Posté le 03 mai 2022 - 11:00 |
y'a des choses à adapter (ajouter le client secret s'il s'agit d'une web app, modifier l'url "https://login.microsoftonline.com/common/oauth2/v2.0/token" en remplaçant le common par un tenant id ou organisations ou autre suivant le cas mais la solution fonction. Par contre, GROS POINT à préciser: le champ HTML doit être mis en mode "activeX" le moteur interne html de windev ne gère pas la redirection que fait le service d'authentification. merciiiii en tout cas, ça fonctionne |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|