PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Récupération data  d'une API
Récupération data d'une API
Iniciado por cyril, out., 28 2018 7:42 PM - 8 respostas
Membro registado
55 mensagems
Popularité : +3 (3 votes)
Publicado em outubro, 28 2018 - 7:42 PM
Bonsoir
J'utilise l'API INSEE pour récupérer des informations liées aux n° SIRENE, TVA Intra…
J'arrive à récupérer les données sans soucis, par contre impossible de générer un nouveau TOKEN (requis toutes les semaines).

EN CURL j'y arrive mais lors de mes essais de re transcription en WINDEV cela ne fonctionne pas.
Vous trouverez mode code CURL et mon code WINDEV dixit mon interprétation.
Si vous avez une idée
Mille Merci
Cdlt
Cyril


Voici mon code en CURL qui fonctionne
curl -k -d "grant_type=client_credentials" \
-H "Authorization: Basic UnU4WTZST1pfbXc5aFJzYmgxYzVOZThUVHM0YTpSRWx5OXN3S2psbGlnT3ZhaVd4U0djZ3dqQThh" \
https://api.insee.fr/token


Et voici mon code en WINDEV

sChCrypté est une chaîne=Encode(sMyKey+":"+sMyPwd,encodeBASE64URL)
oINSEERequest..URL = "https://api.insee.fr/token"
oINSEERequest..Entête["'grant_type:"] = "client_credentials"
oINSEERequest..Entête["Authorization:"] = "Basic "+sChCrypté
oINSEERequest..Méthode = httpGet

// Type du formulaire
//
oINSEERequest..ContentType= "application/json"
oINSEERequest..Contenu = ""

// Génération du formulaire
HTTPCréeFormulaire("FormData")

HTTPAjouteParamètre("FormData", "", "")

// Exécute la requête et récupère la réponse
oINSEEAnswer = HTTPEnvoieFormulaire("FormData", oINSEERequest)
Membro registado
945 mensagems
Popularité : +53 (63 votes)
Publicado em outubro, 29 2018 - 9:41 AM
Bonjour,

sChCrypté est une chaîne=Encode(sMyKey+":"+sMyPwd,encodeBASE64URL)
oINSEERequest..URL = "https://api.insee.fr/token"
oINSEERequest..Entête["Authorization"] = "Basic "+sChCrypté
oINSEERequest..Méthode = httpGet
oINSEERequest..Contenu = "grant_type=client_credentials"
oINSEEAnswer = HTTPEnvoie(oINSEERequest)


Jordan
Publicado em outubro, 29 2018 - 11:13 AM
Bonjour Jordan
Merci de ce retour. J'ai apporté les modifs et j'obtiens toujours la même erreur HTTP suivant :

HTTP/1.1 405 Method Not Allowed
X-Forwarded-For: 80.215.70.134
Date: Mon, 29 Oct 2018 10:09:26 GMT
Transfer-Encoding: chunked
Connection: close
Set-Cookie: INSEE=1830169354.22560.0000;secure; expires=Mon, 29-Oct-2018 10:29:26 GMT; path=/
Strict-Transport-Security: max-age=100000; includeSubDomains


Si vous désirez tester avec les clé, envyer moi un message en PV cyrilATjsn-software.com
Encore merci (j'ai ajouté mon code MAJ suite à votre réponse)
Cdlt
Cyril

sChCrypté est une chaîne=Encode(sMyKey+":"+sMyPwd,encodeBASE64URL)
oINSEERequest..URL = "https://api.insee.fr/token"
oINSEERequest..Entête["Authorization"] = "Basic "+sChCrypté
oINSEERequest..Méthode = httpGet
oINSEERequest..Contenu = "grant_type=client_credentials"
oINSEEAnswer = HTTPEnvoie(oINSEERequest)

oINSEERequest..ContentType= "application/json"

// Génération du formulaire
HTTPCréeFormulaire("FormData")

HTTPAjouteParamètre("FormData", "", "")

oINSEEAnswer = HTTPEnvoieFormulaire("FormData", oINSEERequest)
Membro registado
55 mensagems
Popularité : +3 (3 votes)
Publicado em outubro, 29 2018 - 11:24 AM
Bonjour Jordan
Merci de ce retour. J'ai intégré vos modifications (voir ci-après), mais j'obtiens toujours la même erreur HTTP qui est :

HTTP/1.1 405 Method Not Allowed
X-Forwarded-For: 80.215.70.134
Date: Mon, 29 Oct 2018 10:23:26 GMT
Transfer-Encoding: chunked
Connection: close
Set-Cookie: INSEE=1846946570.22560.0000;secure; expires=Mon, 29-Oct-2018 10:43:26 GMT; path=/
Strict-Transport-Security: max-age=100000; includeSubDomains


Si vous voulez tester, contactez moi en PV (cyrilATjsn-software.com) je vous donnerai les clés.
Merci
Cdlt
Cyril

sChCrypté est une chaîne=Encode(sMyKey+":"+sMyPwd,encodeBASE64URL)
oINSEERequest..URL = "https://api.insee.fr/token"
oINSEERequest..Entête["Authorization"] = "Basic "+sChCrypté
oINSEERequest..Méthode = httpGet
oINSEERequest..Contenu = "grant_type=client_credentials"
oINSEEAnswer = HTTPEnvoie(oINSEERequest)

oINSEERequest..ContentType= "application/json"

// Génération du formulaire
HTTPCréeFormulaire("FormData")

HTTPAjouteParamètre("FormData", "", "")

oINSEEAnswer = HTTPEnvoieFormulaire("FormData", oINSEERequest)
Membro registado
55 mensagems
Popularité : +3 (3 votes)
Publicado em outubro, 29 2018 - 12:37 PM
Re bonjour Jordan
j'ai trouvé ou était l'oubli. Il fallait indiqué le ContentType et c'était du POST et pas du GET...

Voici le code pour ceux que cela intéresse. Les API INSEE sont très pratique pour valider des n° SIRENE, TVA INTRA. Elles sont gratuites et limités à 30 query par minute
Bonne journée
Cdlt
Cyril

sChCrypté est une chaîne=Encode(sMyKey+":"+sMyPwd,encodeBASE64URL)
oINSEERequest..URL = "https://api.insee.fr/token"
oINSEERequest..Entête["Authorization"] = "Basic "+sChCrypté
oINSEERequest..Méthode = httpPost
oINSEERequest..Contenu = "grant_type=client_credentials"
oINSEERequest..AgentUtilisateur="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
oINSEERequest..ContentType="application/x-www-form-urlencoded"
oINSEEAnswer = HTTPEnvoie(oINSEERequest
Publicado em novembro, 16 2018 - 12:57 PM
Bonjour à tous,

Avec le code de Cyril j'obtiens une erreur : {"error_description":"Error in getting oauth app state.","error":"server_error"}

HTTP/1.1 404 Not Found<RC>X-Frame-Options: DENY<RC>X-Content-Type-Options: nosniff<RC>Set-Cookie: INSEE=1863723786.58148.0000;secure; expires=Fri, 16-Nov-2018 12:13:04 GMT; path=/<RC>X-XSS-Protection: 1; mode=block<RC>Content-Type: application/json<RC>Date: Fri, 16 Nov 2018 11:53:04 GMT<RC>Transfer-Encoding: chunked<RC>Connection: close<RC>Set-Cookie: INSEE=1830169354.22560.0000;secure; expires=Fri, 16-Nov-2018 12:13:04 GMT; path=/<RC>Strict-Transport-Security: max-age=100000; includeSubDomains<RC><RC>

Je vois pas trop où est le problème … si vous avez une piste … je suis preneur !

D'avance merci ...
Membro registado
44 mensagems
Publicado em novembro, 16 2018 - 2:56 PM
Bonjour Cyril,

Regarde le Sujet que j'ai ouvert, et le code fonctionne à merveille.

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/221936-api-insee-https-api-insee/read.awp

Code fourni par Julien V.
Membro registado
44 mensagems
Publicado em novembro, 26 2018 - 3:26 PM
Bonjour à Tous,

Je reviens sur les API Sirene, sur le poste de développement ça fonctionne à merveille.
Par contre sur les postes client Rien, je m'explique,

Lors de la récupération du Token par Reponse = HTTPEnvoie( Requete )

AVEC Requete
..URL = protocole + serveur + "/token"
..Entête[ "Authorization" ] = "Basic "+ Encode( cle + ":" + secret, encodeBASE64URL )
..Méthode = httpPost
..Contenu = "grant_type=client_credentials"
..ContentType = "application/x-www-form-urlencoded"
FIN // AVEC requete

ou Requete contient les bonnes informations, dans reponse j’obtiens une chaine totalement vide, aucun message d'erreur absolument rien ,alors que le même code fonctionne parfaitement sur le poste de développement.

Quelqu'un aurait-il connaissance de ce problème.

Merci pour vos retours.

Marc
Publicado em junho, 12 2019 - 3:43 PM
Bonjour Cyril, J'ai vu que vous avez cité que vous avez réussi à extraire les données de l'API INSEE
Est ce que vous pouvez m'aider à ce propos en me montrant le code que vous avez utilisé et je vous remercie vraiment .