|
Pb liason http avec l'api d'ebp |
Débuté par Christophe, 23 juin 2025 11:43 - 4 réponses |
| |
| | | |
|
| |
Posté le 23 juin 2025 - 11:43 |
Bonjour à tous
C'est mon premier post sur ce forum pour un problème de développement je suis en développeur pour une société de service informatique qui veut mettre en place une liaison avec la version SAAS d' EBP. Je vous explique mon problème je génère une première connexion qui me permet d'avoir un refresh token et je suis censé utilisé ce dernier pour générer un nouveau token et un nouveau refresh token toute les heures. Jusque là rien de compliqué j'ai testé la requète sur postman pas de problème j'arrive à avoir mon nouveau token et non nouveau refresh token par contre depuis windev en ayant les mêmes paramêtre je prend une erreur 400 invalid client je vous met les deux codes et je suis ouvert aux pistes si vous en avez. Merci d'avance
Code windev : requeteenvoitoken est une httpRequête reponseenvoitoken est une httpRéponse demandetokenebp est une Structure client_id est une chaîne client_secret est une chaîne grant_type est une chaîne refresh_token est une chaîne FIN montoken est un demandetokenebp
requeteenvoitoken.URL ="https://api-login.ebp.com/connect/token" requeteenvoitoken.Entête["authorization"]="bearer token" requeteenvoitoken.Entête["token"]="" requeteenvoitoken.Méthode=httpPost requeteenvoitoken.ContentType="application/x-www-form-urlencoded" montoken.client_id="jupiterwithoutpkce" montoken.client_secret="78f68eac-c4e2-4221-9836-d66db48a75f0" montoken.grant_type="refresh_token" montoken.refresh_token="U6jem9IEViYBQZxNlq3TkFBgcwS7QVfTN3pBHcro63w"
requeteenvoitoken.Contenu=VariantVersJSON(montoken) reponseenvoitoken=HTTPEnvoie(requeteenvoitoken) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 255 messages |
|
Posté le 23 juin 2025 - 17:01 |
Bonjour,
Pour insérer du code WinDev, utilisez le bouton ad hoc 
Vous avez oublié d'insérer le code utilisé avec Postman... 
ContentType -> Content-Type ?
motoken est un variant (oubliez la structure) ? cf. https://doc.pcsoft.fr/fr-FR/index.awp?1000021051
NB : j'ai répondu car personne ne l'a encore fait mais je ne suis pas un spécialiste du sujet...
-- Bon dev, Jean-PierreMessage modifié, 23 juin 2025 - 17:23 |
| |
| |
| | | |
|
| | |
| |
Posté le 26 juin 2025 - 17:01 |
Jean-Pierre BLOCH a écrit :
Bonjour, Pour insérer du code WinDev, utilisez le bouton ad hoc  Vous avez oublié d'insérer le code utilisé avec Postman...  ContentType -> Content-Type ? motoken est un variant (oubliez la structure) ? cf. https://doc.pcsoft.fr/fr-FR/index.awp?1000021051NB : j'ai répondu car personne ne l'a encore fait mais je ne suis pas un spécialiste du sujet... -- Bon dev, Jean-Pierre Merci pour ta réponse je met mon code la structure y etait mais en effet ça sera plus clair Le content type est l'encodage de la requête http c'est l'encodage par défaut de windev et j'ai le même résultat avec ou sans.
{ "info": { "_postman_id": "5f159fa0-e7bd-4d42-a540-71553350e6a2", "name": "New Collection", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "46007417", "_collection_link": "https://test88-9703.postman.co/workspace/test-Workspace~6e02e0a3-c2f9-42c3-8d38-53d967b97c3e/collection/46007417-5f159fa0-e7bd-4d42-a540-71553350e6a2?action=share&source=collection_link&creator=46007417" }, "item": [ { "name": "https://api-login.ebp.com/connect/token", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/x-www-form-urlencoded", "type": "text" } ], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "client_id", "value": "jupiterwithoutpkce", "type": "text" }, { "key": "client_secret", "value": "78f68eac-c4e2-4221-9836-d66db48a75f0", "type": "text" }, { "key": "grant_type", "value": "refresh_token", "type": "text" }, { "key": "refresh_token", "value": "Fc_dNjP78ImvCrQ3brwF3dvWUMYjHcsTB7tHsMP4Wss", "type": "text" } ] }, "url": { "raw": "https://api-login.ebp.com/connect/token", "protocol": "https", "host": [ "api-login", "ebp", "com" ], "path": [ "connect", "token" ], "query": [ { "key": "client_id", "value": "jupiterwithoutpkce", "disabled": true }, { "key": "client_secret", "value": "78f68eac-c4e2-4221-9836-d66db48a75f0", "disabled": true }, { "key": "redirect_uri", "value": "https://localhost:3333/api/login/SigninRedirect", "disabled": true }, { "key": "response_type", "value": "code", "disabled": true }, { "key": "scope", "value": "openid%20profile%20offline_access", "disabled": true }, { "key": "state", "value": "4e2a15864f564bd19375999c394baa01", "disabled": true } ] } }, "response": [] } ] }
Token est une chaîne
requeteenvoitoken est une httpRequête reponseenvoitoken est une httpRéponse demandetokenebp est une structure client_id est une chaîne client_secret est une chaîne grant_type est une chaîne refresh_token est une chaîne FIN montoken est un demandetokenebp
requeteenvoitoken.URL ="https://api-login.ebp.com/connect/token"
requeteenvoitoken.Méthode=httpPost
montoken.client_id="jupiterwithoutpkce" montoken.client_secret="78f68eac-c4e2-4221-9836-d66db48a75f0" montoken.grant_type="refresh_token" montoken.refresh_token="LnNbg8cfD9hOiKvO6iUf-K6xbXa3UQvWov16X9ZJZGM"
requeteenvoitoken.Contenu=VariantVersJSON(montoken) reponseenvoitoken=HTTPEnvoie(requeteenvoitoken)
SI reponseenvoitoken.CodeEtat=200 ALORS FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 487 messages |
|
Posté le 27 juin 2025 - 17:33 |
Bonjour,
Votre spécification JSON, que vous pouvez importer dans Postman pour vérifier, demande un formulaire HTTP, et non pas du JSON. La bonne piste serait plutôt :
requeteenvoitoken est une httpRequête reponseenvoitoken est une httpRéponse
requeteenvoitoken.URL ="https://api-login.ebp.com/connect/token" requeteenvoitoken.Méthode=httpPost requeteenvoitoken.ContentType = "application/x-www-form-urlencoded"
HTTPCréeFormulaire("token") HTTPAjouteParamètre("client_id","jupiterwithoutpkce") HTTPAjouteParamètre("client_secret","78f68eac-c4e2-4221-9836-d66db48a75f0") HTTPAjouteParamètre("grant_type","refresh_token") HTTPAjouteParamètre("refresh_token","LnNbg8cfD9hOiKvO6iUf-K6xbXa3UQvWov16X9ZJZGM")
reponseenvoitoken=HTTPEnvoie("token", requeteenvoitoken) |
| |
| |
| | | |
|
| | |
| |
Posté le 02 juillet 2025 - 10:50 |
bchanudet a écrit :
Bonjour, Votre spécification JSON, que vous pouvez importer dans Postman pour vérifier, demande un formulaire HTTP, et non pas du JSON. La bonne piste serait plutôt : requeteenvoitoken est une httpRequête reponseenvoitoken est une httpRéponse
requeteenvoitoken.URL ="https://api-login.ebp.com/connect/token" requeteenvoitoken.Méthode=httpPost requeteenvoitoken.ContentType = "application/x-www-form-urlencoded"
HTTPCréeFormulaire("token") HTTPAjouteParamètre("client_id","jupiterwithoutpkce") HTTPAjouteParamètre("client_secret","78f68eac-c4e2-4221-9836-d66db48a75f0") HTTPAjouteParamètre("grant_type","refresh_token") HTTPAjouteParamètre("refresh_token","LnNbg8cfD9hOiKvO6iUf-K6xbXa3UQvWov16X9ZJZGM")
reponseenvoitoken=HTTPEnvoie("token", requeteenvoitoken)
Un grand merci tu m'a permis de me débloquer j'utilisai httpformulaire pour ajouter des médias à des requetes http mais pas pour ce type de demande. Encore merci |
| |
| |
| | | |
|
| | | | |
| | |
|