Partage
  • Partager sur Facebook
  • Partager sur Twitter

[bash] cURL mettre une variable dans x-token

Sujet résolu
    14 janvier 2022 à 16:14:05

    je n’arrive pas communiquer ma variable token dans cURL

    je précise que le code a pour bute de se connecter a école directe et récupérez le calendrier

    j'ai ésseiller toute les solution que j'ai trouvez sur internet 

    voici le code

    token=$(curl 'https://api.ecoledirecte.com/v3/login.awp?v=1.8.28'   -H 'authority: api.ecoledirecte.com'   -H 'sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"'   -H 'accept: application/json, text/plain, */*'   -H 'content-type: application/x-www-form-urlencoded'   -H 'x-token: '   -H 'sec-ch-ua-mobile: ?0'   -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'   -H 'sec-ch-ua-platform: "Linux"'   -H 'origin: https://www.ecoledirecte.com'   -H 'sec-fetch-site: same-site'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-dest: empty'   -H 'referer: https://www.ecoledirecte.com/'   -H 'accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'   --data-raw $'data={\n    "uuid": "",\n    "identifiant": "identifiant",\n    "motdepasse": "motdepasse",\n    "isReLogin": false\n}'   --compressed |jq '.token') 
    echo $token
    curl 'https://api.ecoledirecte.com/v3/E/9369/emploidutemps.awp?verbe=get&v=1.8.28' \
      -H 'authority: api.ecoledirecte.com' \
      -H 'sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"' \
      -H 'accept: application/json, text/plain, */*' \
      -H 'content-type: application/x-www-form-urlencoded' \
      -H 'x-token: '$token \
      -H 'sec-ch-ua-mobile: ?0' \
      -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36' \
      -H 'sec-ch-ua-platform: "Linux"' \
      -H 'origin: https://www.ecoledirecte.com' \
      -H 'sec-fetch-site: same-site' \
      -H 'sec-fetch-mode: cors' \
      -H 'sec-fetch-dest: empty' \
      -H 'referer: https://www.ecoledirecte.com/' \
      -H 'accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7' \https://openclassrooms.com/fr/courses/6173491-apprenez-a-utiliser-la-ligne-de-commande-dans-un-terminal/exercises/3548
      --data-raw $'data={\n    "dateDebut": "2022-01-10",\n    "dateFin": "2022-01-16",\n    "avecTrous": false\n}' \
      --compressed 

    et voici la réponse du Server

    {"code":520, "token":"", "message":"Token invalide !", "data":{"accounts":[]}}



    -
    Edité par YuPa1 14 janvier 2022 à 16:25:16

    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2022 à 13:42:44

      Salut, chose  certaine le serveur te renvoie une erreur inconnue et token invalide.

      Perso je ne connais pas le façon dont ce serveur authentifie.

      Je ne comprends pas pourquoi non plus tu mets plusieurs user-agent, puis ta variable x-token  qui est ta commande en elle même...Hm j'ai du mal à comprendre...

      • Partager sur Facebook
      • Partager sur Twitter
        17 janvier 2022 à 0:27:58

        Bonjour,

        Pour répondre à la question, tu peux mettre toute la chaîne de caractère entre guillemets doubles.

        -H "x-token: $token"

        @maroufle, pour utiliser l'API, il faut d'abord acquérir un token qui servira à s'authentifier pour chaque requête.

        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2022 à 10:57:39

          A vrai dire j'ai jamais utilisé cURL, je regardais plus les réponses du serveur http...

          Je ne comprends pas trop tous ces user-agent surtout, parce que certains sites se protègent via le user-agent (comme facebook par exemple)

          Si le user-agent est inconnu pour Facebook on ne peut rien récupérer, même si j'avais voulu faire ça en php depuis qu'ils ont arrêté d'utiliser les flux CSS et pour faire de la mise à jour dynamique de site via les messages postés sur facebook sans utiliser leur API très limitée.

          • Partager sur Facebook
          • Partager sur Twitter
            17 janvier 2022 à 13:50:30

            KoaTao a écrit:

            Bonjour,

            Pour répondre à la question, tu peux mettre toute la chaîne de caractère entre guillemets doubles.

            -H "x-token: $token"

            @maroufle, pour utiliser l'API, il faut d'abord acquérir un token qui servira à s'authentifier pour chaque requête.


            toujour le memme mesage

            {"code":520, "token":"", "message":"Token invalide !", "data":{"accounts":[]}}



            • Partager sur Facebook
            • Partager sur Twitter
              17 janvier 2022 à 16:50:01

              Ce que je ne comprends pas c'est que tu assignes une variable, -H 'x-token: '

              Cette variable est censée représenter un entête http, mais du coup il n'y a rien dans l'entête x-token... Le serveur répond "token":""

              Donc vide. Et forcément invalide...Enfin c'est que mon avis, je ne connais pas l'API de ce site pour l'authentification ni cURL.

              En cliquant directement sur ton lien on obtient ça en tout cas.

              {"code":40129, "token":"", "message":"Format JSON invalide", "data":{"accounts":[]}}

              -
              Edité par maroufle34 17 janvier 2022 à 16:53:45

              • Partager sur Facebook
              • Partager sur Twitter
                17 janvier 2022 à 19:07:10

                Bonjour,

                L'authentification n'a probablement pas retournée de token comme @maroufle34 le dit. Autrement dit:

                curl 'https://api.ecoledirecte.com/v3/login.awp' \
                --data-raw 'data={"identifiant": "identifiant", "motdepasse": "motdepasse"}'

                retourne une erreur (ouai, toute ton en-tête n'est pas très utile).

                La doc de l'API: https://github.com/EduWireApps/ecoledirecte-api-docs

                -
                Edité par KoaTao 17 janvier 2022 à 19:07:55

                • Partager sur Facebook
                • Partager sur Twitter
                  18 janvier 2022 à 12:14:55

                  je vien de tester en metan un token dans la variable et sa marche

                  sa vien des " " autour du token

                  je vien  de trouvez la solution

                  j'ais rajouter

                  token2=$(tr -d '"-"' <<< ${token})
                  

                  -
                  Edité par YuPa1 18 janvier 2022 à 12:32:13

                  • Partager sur Facebook
                  • Partager sur Twitter

                  [bash] cURL mettre une variable dans x-token

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown