| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 10 août 2017 - 12:35 |
Bonjour à tous. Je dois intégrer dans mon application la gestion d'un agenda office 365. J'utilise pour cela une variable de type OAuth2Paramètres, elle est correctement renseignée et j'obtiens une réponse de la part de Microsoft qui contient un token que j'utilise pour gérer mon agenda. Mon problème est que ce token reçu est de type access_token et qu'il expire après une heure de temps. Je souhaiterais obtenir avec cet access_token , un refresh_token qui me permettrait de continuer à inter agir sur l'agenda sans redemander l'identification à l'utilisateur. Quelqu'un a il une idée pour résoudre ce pb ?
Merci.
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 10 août 2017 - 13:05 |
Bonjour,
Il te faut rajouter le scope offline_access pour avoir le refresh_token
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 10 août 2017 - 14:15 |
Merci Philippe pour la réponse, avec :m_ParamIdentification.Scope ="https://outlook.office.com/calendars.readwrite&offline_access"
où m_ParamIdentification est de type OAuth2Paramètres
mais rien n'y fait j'ai toujours ceci comme réponse : { "token_type":"Bearer", "scope":"https:\/\/outlook.office.com\/Calendars.Read https:\/\/outlook.office.com\/Calendars.Read.Shared https:\/\/outlook.office.com\/Calendars.ReadWrite https:\/\/outlook.office.com\/Contacts.ReadWrite", "expires_in":3599, "ext_expires_in":262800, "access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlZXVkljMVdEMVRrc2JiMzAxc2FzTTVrT3E1USIsImtpZCI6IlZXVkljMVdEMVRrc2JiMzAxc2FzTTVrT3E1USJ9.eyJhdWQiOiJodHRwczovL291dGxvb2sub2ZmaWNlLmNvbSIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2RhODI4NzdmLTEyYWQtNDMyNy05NjY0LTE4M2FiZmZmNjRkMi8iLCJpYXQiOjE1MDIzNjY3MDgsIm5iZiI6MTUwMjM2NjcwOCwiZXhwIjoxNTAyMzcwNjA4LCJhY3IiOiIxIiwiYWlvIjoiQVNRQTIvOEVBQUFBZFk1eUd1QUptY0c5azRxYmNzL3U0TmZZbVZLWEhjZmRHakM1WjVSVzR0dz0iLCJhbXIiOlsicHdkIl0sImFwcGlkIjoiZDIxNzQxM2ItMTQ0MC00MjIyLThhN2ItMTI4NjY4ZjIyYTJlIiwiYXBwaWRhY3IiOiIxIiwiZV9leHAiOjI2MjgwMCwiZW5mcG9saWRzIjpbXSwiZmFtaWx5X25hbWUiOiJDSEFVVkVUIE1PVEVBVSIsImdpdmVuX25hbWUiOiJMYXVyZW50IiwiaXBhZGRyIjoiOTEuMjExLjE2Ny4yMjUiLCJuYW1lIjoiTGF1cmVudCBDSEFVVkVUIE1PVEVBVSIsIm9pZCI6IjQzY2NlMmJmLTMwMDMtNDlkMy05M2M3LTczYWM0MWEyNGZjNiIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS02MDIxNjIzNTgtMTM4MzM4NDg5OC04NTQyNDUzOTgtMjY2NjUiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzAwMDA4QzE2RjgzRiIsInNjcCI6IkNhbGVuZGFycy5SZWFkIENhbGVuZGFycy5SZWFkLlNoYXJlZCBDYWxlbmRhcnMuUmVhZFdyaXRlIENvbnRhY3RzLlJlYWRXcml0ZSIsInN1YiI6Ilczc3pWNDhOV2puQmtPTmFRMjF1YzVCWTg4X01rQmNweTJfY1NZM2RIY28iLCJ0aWQiOiJkYTgyODc3Zi0xMmFkLTQzMjctOTY2NC0xODNhYmZmZjY0ZDIiLCJ1bmlxdWVfbmFtZSI6ImwuY2hhdXZldG1vdGVhdUBhbmlrb3AuY29tIiwidXBuIjoibC5jaGF1dmV0bW90ZWF1QGFuaWtvcC5jb20iLCJ2ZXIiOiIxLjAifQ.Mc7QVBq0_dfOL-cynbT2UTjlVOfbgaNSdUvKAOG_mqqVkypKFzz-qR0yQPI0JGfaj32M-sU_0rjPkMxruJaTnQhzLDN9R2JDfYg_seOmbnkiuwlccF1PkCjLqasSB6Ft1aVWxt-FJRkFnY2fsI5PeMW_BbfjfuZ4PyoVimZmYl6T6WKFN0nv8xsaMNfaV4TleoOe0RT_yGnOGzZuPXOaQ_a7cXAJDqepAqF8t4WV1KYilZONIBOZU0cAKRBrFNsl16CLDEJQj55z-O3mNLzFQz8sfB_2imeMj8Y_3xY_C8QrMhJ6Jj0V-szQE48S28-Sgtail-j1EkLEEkRuINKGrQ" }
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 10 août 2017 - 15:14 |
Moi j'envoie ça comme scope par exemple
clOauth.Scope = "offline_access User.Read"
essaye de le mettre en premier scope pour voir si ça change quelque chose
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 10 août 2017 - 15:22 |
Un GRAND Philippe, ça fonctionne j'ai enfin mon refresh_tokken
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 10 août 2017 - 15:31 |
Laurent CM a écrit :
Un GRAND Philippe, ça fonctionne j'ai enfin mon refresh_tokken
-- Cordialement Je crois que le MERCI était tellement grand qu'il ne rentrait pas, je l'ai donc réduit un peu pour qu'il puisse s'afficher
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 11 août 2017 - 12:03 |
Bonjour, nouvelle petite question sur la suite du refresh token, grâce à Philippe j'ai bien obtenu les informations du refresh token dans la demande d'access_token, mais quand il s'agit d'obtenir un nouveau jeton avec le refresh j'ai l'erreur suivante : { "error":"invalid_grant", "error_description":"AADSTS70000: Transmission data parser failure: Refresh Token is malformed or invalid.\r\nTrace ID: 26fdf995-9864-4a62-8d1a-94cf48e00400\r\nCorrelation ID: 0b1c29b5-3a0a-44e0-9b3d-1365b3015a61\r\nTimestamp: 2017-08-11 08:38:15Z", "error_codes":[70000], "timestamp":"2017-08-11 08:38:15Z", "trace_id":"26fdf995-9864-4a62-8d1a-94cf48e00400", "correlation_id":"0b1c29b5-3a0a-44e0-9b3d-1365b3015a61" }
Voici le code que j'utilise pour obtenir le nouveau token
HTTPAnnuleFormulaire("REFRESH_TOKEN") HTTPCréeFormulaire("REFRESH_TOKEN") HTTPAjouteParamètre("REFRESH_TOKEN","grant_type","refresh_token") HTTPAjouteParamètre("REFRESH_TOKEN","refresh_token",:m_Token_REFRESH.Valeur) HTTPAjouteParamètre("REFRESH_TOKEN","client_id",:m_ParamIdentification.ClientID) HTTPAjouteParamètre("REFRESH_TOKEN","client_secret",:m_ParamIdentification.ClientSecret) HTTPAjouteParamètre("REFRESH_TOKEN","ressource",:m_ParamIdentification.URLRedirection)
bRéponse = HTTPEnvoieFormulaire("REFRESH_TOKEN","HTTPS://login.windows.net/common/oauth2/token",httpPost,"","")
Si quelqu'un a une idée ?
Merci
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 11 août 2017 - 14:21 |
Bonjour,
Tout d'abord, je pense qu'il y a un "s" de trop à resource. Ensuite je pense que resource doit correspondre à resource reçu dans le access_token.
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 16 août 2017 - 13:07 |
Bonjour Philippe, j'ai corrigé "resource" et j'ai même supprimé cette information dans le formulaire, mais rien n'y fait j'ai toujours la même erreur. J'ai pris ce code dans le projet du webinaire. J'ai même tenté comme dans le code initial de passer les paramètres en mode ChaîneVersUTF8, sans plus de résultat.
Je sèche....
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 16 août 2017 - 13:31 |
Bonjour Laurent,
Sauf erreur de ma part, les points de terminaisons pour la connexion aux api en mode REST chez Microsoft sont les suivants (https://msdn.microsoft.com/en-us/office/office365/api/use-outlook-rest-api)
https://login.microsoftonline.com/common/oauth2/v2.0/authorize https://login.microsoftonline.com/common/oauth2/v2.0/token
Voici une page où tout n'est pas trop mal expliqué (https://developer.microsoft.com/fr-fr/graph/docs/concepts/auth_v2_user). Je dois avouer que la doc de chez Microsoft est assez brouillon et qu'il faut chercher un peu partour pour trouver une info. C'est la page la plus complète que j'ai trouvé et qui m'a servi à développer ma classe pour les connexions oAuth.
La connexion oAuth de Windev est trop limitée et ne permet pas tout. Il est plus simple de passer par des Requete http. Si tu as besoin d'un peu plus d'infos n'hésite pas.
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 16 août 2017 - 13:41 |
Je te remercie Philippe pour ces informations. Je vais étudier tout ça et reviendrais le cas échéant vers toi si je n'y arrive pas. Merci pour ton aide
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 16 août 2017 - 13:56 |
| |
| |
| | | |
|
| | |
| |
Posté le 23 avril 2018 - 14:29 |
Bonjour pourrait-on avoir votre code qui vous permet de demander la première autorisation ? car moi j'essaye sur l'API de one drive et je n'obtiens toujours que le token, jamais le code qui permet de redemander un token Par contre dans le navigateur qui s'ouvre je vois mon url de redirection avec comme paramêtre ce qui semble être le code dont j'ai besoin pour faire un refresh de token http://localhost:9000/…
mais dans ma variable AuthToken j'obtiens toujours ceci: {"token_type":"bearer","expires_in":3600,"scope":"wl.offline_access wl.basic","access_token":"EwAYA61DBAAUcSSzoTJJsy+XrnQXgAKO5cj4yc8AAcPqoCn0HPlZ2etK5nqRdjaqIPS68Pb7SnIW8Cw8OmGDo6I5luxmeQ03ZY8ndandLTUkfMXRjyroqItmBJ10aoPUu3Fux9fQ2w4I4..."}
Merci à vous |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 23 avril 2018 - 15:39 |
Bonjour, voici le code que j'utilise : m_ParamIdentification est un OAuth2Paramètres TOKEN_MICROSOFT est un AuthToken
:m_ParamIdentification.URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize" :m_ParamIdentification.URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token" :m_ParamIdentification.ClientID = "xx :m_ParamIdentification.ClientSecret = "xx" :m_ParamIdentification.URLRedirection = "http://localhost:9874"
TOKEN_MICROSOFT = AuthIdentifie(:m_ParamIdentification) SI TOKEN_MICROSOFT.Valide = Faux ALORS :mtd_Trace("Demande de Token refusée par microsoft") :mtd_Trace("motif : " + RC + TOKEN_MICROSOFT.RéponseServeur) :mtd_Trace("_-¯") RENVOYER Faux SINON // En MODE DEBUG :mtd_Trace("Demande de Token acceptée") :mtd_Trace("_-¯") vTOKEN = JSONVersVariant(TOKEN_MICROSOFT.RéponseServeur) :m_Token_ACCESS = TOKEN_MICROSOFT :m_Token_ACCESS.Valeur = vTOKEN.Access_token :m_Token_REFRESH = TOKEN_MICROSOFT :m_Token_REFRESH.Valeur = vTOKEN.Refresh_token :mtd_SauvegardeLeToken( TOKEN_MICROSOFT) RENVOYER Vrai FIN
Cordialement
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Posté le 01 août 2018 - 10:54 |
Bonjour, Ce code est-il toujours d'actualité ? Lorsque je fais AuthIdentifie , mon navigateur s'ouvre et me redirige vers la page de mon site. Je suis obligé de fermer mon navigateur, et de cliquer le bouton "Annuler" de la fenêtre d'authentification. Je ne récupère donc pas le Token. Y a-t-il quelque chose que je fais mal ?
Cdt Greg |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 01 août 2018 - 12:06 |
Bonjour, oui il l'est toujours. Ton navigateur s'ouvre car l'identification se fait forcément via le navigateur, une fois que tu as rentré ton id et ton mot de passe, un message te dit que tu peux fermer ton navigateur. Et dans ton application tu récupères ton token.
Cordialement
-- Cordialement |
| |
| |
| | | |
|
| | |
| |
Posté le 26 octobre 2022 - 16:54 |
Bonjour,
Est si l'on veut une authentification transparent sans page de login/mot de passe, je pense a un service de récupération de mail par exemple. Avez vous une idée sur le sujet ? Merci |
| |
| |
| | | |
|
| | |