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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Authentification avec l'API suivie de la poste (okapi)


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut Authentification avec l'API suivie de la poste (okapi)
    Bonjour, quelqu'un pourrais t'il me dire le problème avec ce code ?

    j'obtiens une erreur http 401 j'ai essayé plein de choses je bloque.

    le code :

    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
    $postdata = http_build_query(
        array(
            'id' => 'numéro de suivie',
            'lang' => 'fr_FR'
        )
    );
     
    $opts = array('http' =>
        array(
            'method' => 'GET',
            'header' => 'Content-type: application/json;\r\nAccept: application/json\r\ncharset=utf-8\r\nX-Okapi-Key:clef d authentification' ,
            'content' => $postdata
        )
    );
     
    $context = stream_context_create($opts);
     
     
    $result = file_get_contents('https://api.laposte.fr/suivi/v2/idships/numéro de suivie?lang=fr_FR',false,$context);
     
    echo $result;
    docu : https://developer.laposte.fr/product...tion#heading-2


    merci de votre aide

  2. #2
    Membre éprouvé Avatar de two3d
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2012
    Messages : 126
    Par défaut
    401 c'est "unauthorized", la clé est peut être pas bonne.

    EDIT : je confirme :

    Codes retour

    401 : Non-autorisé (absence de la clé Okapi)

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    c'est pourtant la clef qui m'a été attribué, j'ai vérifié mille fois, de plus elle n'est pas absente regardez le code du coté du header.

  4. #4
    Membre éprouvé Avatar de two3d
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2012
    Messages : 126
    Par défaut
    J'intègre cette API demain, je te donnerais peut être plus de solutions

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    Merci ce serait sympa , tu compte le faire avec la fonction curl() ou comme moi avec filegetcontent() ?

  6. #6
    Membre éprouvé Avatar de two3d
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2012
    Messages : 126
    Par défaut
    Je vais tenter par cURL comme la doc l'indique.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    J'ai tout testé clef prod , clef sandbox, j'ai régénéré les clefs j'ai tout essayé avec le header et rien ne marche j'utilise ce code pour d'autre api service de géolocalisation, paiment en ligne etc ou bien les services que je créer moi même okapi c'est le seul qui marche pas , la poste quoi ...

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Citation Envoyé par serpentcorail Voir le message
    J'ai tout testé clef prod , clef sandbox, j'ai régénéré les clefs j'ai tout essayé avec le header et rien ne marche j'utilise ce code pour d'autre api service de géolocalisation, paiment en ligne etc ou bien les services que je créer moi même okapi c'est le seul qui marche pas , la poste quoi ...
    L'interface graphique Swagger de La poste de suivi courrier/colis fonctionne bien. Je viens de la tester.

    Si ta clé authentification sandbox ne fonctionne toujours pas tu peux contacter le support technique dont l'adresse se trouve sur ton espace privé de dev.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    Le mail est envoyé depuis hier mais d'apres les avis faut attendre 2 mois tant pis je passerais par la fonction curl

  10. #10
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 435
    Par défaut
    Bonjour,

    Dans ton premier code, les retours à la ligne \r\n ne sont surement pas pris en compte dans l'entête header car tu utilises des guillemets simple. Utilises plutôt des double quotes comme dans le code proposé par armel18 (la coloration syntaxique montre bien la différence).

  11. #11
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    J'ai déjà fait c'est la même chose et si je en met pas un espace après le \r\n j'obtient alors une erreur serveur de type 503 service indisponible,

    voici mon header dernière version :

    'header' => "Accept:application/json\r\n X-Okapi-Key:maclefprod"

    j'ai retiré le paramètre lang optionnel mais j'ai toujours HTTP request failed! HTTP/1.1 401 Unauthorized

  12. #12
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Je me suis créé un compte exprès pour tester et je confirme que le code de @two3d fonctionne parfaitement bien
    Y'a juste à mettre la clé Okapi, j'ai même pas regarde le code et hop ! tout fonctionne

    J'ai l'impression que vous vous bornez à utiliser file_get_contents() mais c'est vraiment déconseillé. (en plus je trouve ça moins lisible avec le context à écrire sur le côté)
    Utilisez plutôt cURL qui est fait spécifiquement pour appeler des URLs (et donc des API)

    Dans vos applications (https://developer.laposte.fr/applications), j'ai vu qu'il était possible de mettre une durée de validité.
    Avez-vous vérifiez que la clé n'avait pas expiré ? Avez-vous essayer de regénérer la clé ? Histoire d'être sûr qu'elle soit OK

  13. #13
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    c'est bien que ça fonctionne avec curl() mais en tant que développeur j'ai besoin de savoir le pourquoi des choses , j'aime aussi travailler le plus possible sans librairie externe , de plus sur un forum une personne dit avoir réussi avec filegetcontent(), je vais essayer d' écrire un petit code en c qui envois une requête http a la page cible de la poste pour voir la réponse et aussi une requête http en Kotlin avec "oKhttp" par une appli androïd car mettons que vous vouliez intégrer cette fonctionnalité sur une app et non une page web. Merci a tous de vos réponses.

  14. #14
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Je comprends un peu la démarche mais, comme je l'ai dit, file_get_contents() n'est pas fait pour ça à la base
    Théoriquement, cette fonction ne pouvait même pas appeler des URLs externes à l'origine.
    C'est un peu comme si vous vouliez creuser un lac avec une petite cuillère et que vous vous demandiez pourquoi ça n'avance pas

    cURL n'est pas considéré comme une libraire externe, c'est L'OUTIL nécessaire pour faire des appels API.

    De mon côté, je n'arrive même pas à avoir une réponse avec file_get_contents() par exemple
    Et c'est aussi le problème de cette fonction : elle n'est pas faite pour ça et dépend de la config PHP (ce qui est pire que l'utilisation d'une libraire)
    Surtout dans ce cas-ci où cURL étant utilisé un peu partout, elle est très souvent automatiquement activée sur les hébergements

    Je terminerais par dire que de toute façon, votre problème vient de la clé API vue l'erreur 401

  15. #15
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2021
    Messages : 61
    Par défaut
    Vous avez surement raison , par contre la clef est bonne , c'est la clef attribué par la poste et elle bonne et bien marqué active sur mon Dashboard, de plus comme j'ai dit plus haut il suffit de d'enlever un espace et l'erreur change de 401 à 503 (service non dispo) donc moi je me fierais pas trop à ça.

    voici un extrait du forum okapi sur "glitter" :

    Trouvé...
    Je me réponds donc à moi même...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $url = 'https://api.laposte.fr/suivi/v2/idships/2L00754800000';
    $postdata = http_build_query( array('' => '2L00754800000') );
    $opts = array('http' => array('method' => 'GET', 'header' => "Content-type: Accept: application/json\r\nX-Okapi-Key: abcdefghijklmnopqrstuvwxyz" , 'content' => $postdata ) );
    $context = stream_context_create($opts);
    $result = file_get_contents($url, false, $context);
    $parsed_json = json_decode($result);
    print ($result);
    Merci encore à vous pour votre aide.
    mais bon ça marche pas


    https://gitter.im/DeveloperLaPoste/okapi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/11/2016, 13h06
  2. Réponses: 0
    Dernier message: 18/01/2015, 23h45
  3. Réponses: 0
    Dernier message: 18/01/2015, 23h45
  4. Tutoriel La Poste IDentité Numérique - Intégration d'une API d'authentification avec PHP
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 18/01/2015, 23h40
  5. Réponses: 0
    Dernier message: 18/01/2015, 23h23

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