IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Envoyer un formulaire pour obtenir un token sur l'api eveler


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut Envoyer un formulaire pour obtenir un token sur l'api eveler
    Bonjour,
    J'essaye d'obtenir des relevés Enedis pour mon entreprise.
    Apres les avoir contacté ils m'ont donné l'adresse d'une API et un exemple en python (je suis nul en python)
    D’après ce que j'ai compris je dois d'abord envoyer une requête pour obtenir un code (Token) puis envoyer une autre requete avec ce code pour obtenir les infos que je veux.
    Cela fait plusieurs jours que j'essaye sans succès de traduire l'exemple fourni en windev

    Pourriez vous m'aider s'il vous plait ?

    Voici l'exemple python qui permet de recuperer le token :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import requests
    import json
    from pprint import pprint
     
    URL = "https://api.eveler.pro/api/client"
    TOKEN = "thor"
    SECRET = "ragnarok"
    headers = {"accept": "application/json"}
    r = requests.post(URL + "/auth/login", params={"token": TOKEN, "secret": SECRET}, headers=headers)
    if r.status_code == 200 and r.json()["success"] is True:
        api_token = r.json()["data"]["token"]
        print("Requete HTTP OK : API Token = ", api_token)
        headers["Authorization"] = api_token
    else:
        print("Error : code retour HTTP = {}".format(r.status_code))
    Requete HTTP OK : API Token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjViODY5NzA0MmE2NDhiMWZhMTExNzFmNCIsInNjb3BlIjoiY2xpZW50IiwiZXhwIjoxNTkxNjIxNjM5fQ.Z-2QwiUEtMDvBJJu0aYM0nPTBdy2h-jxD-PNSAkKcAY
    Que j'ai traduit de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Token est une chaîne="*******"
    Secret est une chaîne="*******"
    HTTPCréeFormulaire("Token")
    HTTPAjouteParamètre("Token","token",Token)
    HTTPAjouteParamètre("Token","secret",Secret)
    HTTPEnvoieFormulaire("Token","https://api.eveler.pro/api/client/auth/login",httpPost,"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0","accept:application/json")
    Info(HTTPDonneRésultat(httpRésultat))
    ce qui me donne : Une erreur système a été détectée pendant l'envoi de la requête HTTP.

  2. #2
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 520
    Par défaut
    Bonjour,

    première chose : "encadre" tes instructions avec des SI ALORS. Par exemple, tu pourrais faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI PAS HTTPEnvoieFormulaire(......) ALORS
    Erreur("Echec de l'envoi du formulaire : ", ErreurInfo())
    FIN
    Ce qui te permettra (peut-être) d'avoir plus d'infos sur le souci rencontré.

    Deuxième chose : regarder la doc python (que je ne connais pas non plus) pour comprendre comment sont utilisés les paramètres. Est-ce qu'ils sont des paramètres d'entête ?

    Dernière chose : Est-ce qu'il ne faudrait pas plutôt utiliser httpenvoie() ? Car je n'ai pas l'impression que tu envoies un formulaire.

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 338
    Par défaut
    Salut,
    déjà vu un peu de python. Voici le code qui en Windev m'a permis d'obtenir un token:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Token	est une chaîne	= "thor"
    Secret	est une chaîne	= "ragnarok"
     
    cMaRequête est un httpRequête
    cMaRequête..URL = "https://api.eveler.pro/api/client/auth/login"
    cMaRequête..Méthode = httpPost
    cMaRequête..AgentUtilisateur = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
    cMaRequête..ContentType = typeMimeJSON
    cMaRequête..Entête["accept"] = "application/json"
     
    jSonPAram est JSON
    jSonPAram.token = Token
    jSonPAram.secret = Secret
    cMaRequête..Contenu = jSonPAram
     
    cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errComplet))
    SINON
    	Info(cMaRéponse.Contenu)
    FIN
    Nom : 2022-10-17 22_20_24-testEvelerAPI.png
Affichages : 607
Taille : 14,3 Ko

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut
    Bonjour,
    Merci kunnskap pour cette réponse très précise.

    Il m'a fallu du temps pour trouver une V25 car le type JSON n'existe pas en V23.
    Vu que tu a réussi avoir un token je ne doute pas que ton code fonctionne
    cependant depuis mon poste de travail j'obtiens une erreur 100 138
    "La vérification du certificat SSL ou de la clé SSH a échoué."
    J'ai ajouté ceci :

    cMaRequête..IgnoreErreur =httpIgnoreCertificatExpiré + httpIgnoreNomCertificatInvalide + httpIgnoreCertificatInvalide + httpIgnoreRévocation +httpIgnoreRenvoiHTTP + httpIgnoreRenvoiHTTPS
    Proxy("adresse",nPort)

    avant le "httpenvoie"
    Mais rien n'y fait
    Je suppose que cela vient de la sécurité du réseau de mon entreprise.
    Je testerais depuis mon domicile pour le confirmer

    En tout cas merci beaucoup

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 338
    Par défaut
    Sans le type JSON on peut utiliser une chaine, le type JSON facilite l'écriture mais n'est pas obligatoire.
    Et en effet testes depuis un autre endroit pour confirmer, j'ai pas eu besoin d'enrichir la property ..IgnoreErreur de mon côté.
    Et plus que depuis un autre endroit, même depuis une autre machine si besoin.

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 431
    Billets dans le blog
    1
    Par défaut
    Salut
    Il faut je crois installer le certificat SSL sur l'ordinateur
    Soit https://faq.pcsoft.fr/22346-faq-read.awp
    Cette page explique l'installation sur windows bien que cela parle aussi d'Android.

    Ou voir
    https://faq.pcsoft.fr/20558-faq-read.awp

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 933
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par gros_toto Voir le message
    Il m'a fallu du temps pour trouver une V25 car le type JSON n'existe pas en V23.
    Une autre solution est de passer par une structure est de sérialiser en JSON. L'autre avantage de cette méthode est que via le data binding, tu peux facilement récupérer ls données saisies dans une fenêtre.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut
    Bonjour,
    J'ai essayé depuis mon domicile et cela fonctionne parfaitement.
    Mais depuis mon poste de travail rien n'y fait, j'ai pourtant installé le certificat de zscaler que l'on ma fournit
    Je ne comprend pas, depuis un navigateur j'arrive a me connecter sans problème
    Cordialement

Discussions similaires

  1. Logiciel pour obtenir des statistiques sur un projet
    Par Invité dans le forum Qualité
    Réponses: 1
    Dernier message: 06/12/2011, 15h18
  2. Réponses: 2
    Dernier message: 14/04/2011, 12h00
  3. Réponses: 6
    Dernier message: 13/12/2010, 13h23
  4. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  5. pb avec un formulaire pour obtenir une image
    Par maxsurf dans le forum IHM
    Réponses: 2
    Dernier message: 05/07/2007, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo