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

  1. #21
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Vous avez dit que l'erreur passe de 401 à quelque chose...
    Ca ne peut pas être de 401 à 401, sinon votre phrase n'a pas de sens

    Je vous ai mis un bout de code fonctionnel également dans mon dernier post et qui utilise file_get_contents().
    Si en remplaçant juste votre clé API dans mon code ça ne fonctionne pas, c'est soit que votre clé n'est pas bonne (erreur 401) soit l'API n'est pas activée (erreur 403)

  2. #22
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Février 2021
    Messages : 47
    Points : 80
    Points
    80
    Par défaut
    votre code marche ! merci 1000 fois je vais étudier ça vous êtes mon libérateur.

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

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

    Informations forums :
    Inscription : Février 2021
    Messages : 47
    Points : 80
    Points
    80
    Par défaut
    c'était un problème avec le formatage du header une histoire de EOF et \r\n pas bien interprété, alors ?
    Je marque comme résolu.

  4. #24
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Je l'ai déjà précisé dans mon message ET dans le code :
    J'ai juste supprimé l'index content dans la variable $opts de la fonction stream_context_create()

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

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

    Informations forums :
    Inscription : Février 2021
    Messages : 47
    Points : 80
    Points
    80
    Par défaut
    non tu n'a pas fait que ça tu utilise PHP_EOF au lieu de \r ou \n c'est ça qui change tout car même si j'élimine l'index content dans mon ancien code ça ne marche toujours pas. 'content' ajoutait juste une redondance vu que les paramètre sont déjà fournis par l'url.

  6. #26
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Difficile à dire vu qu'à part le code initial, on a plus jamais rien vu de ton code. En fait, je pense que tu avais plusieurs erreurs à plusieurs niveau
    C'est juste que mon écriture étant "plus propre" et que j'ai plus l'habitude, j'ai automatiquement corrigé sans m'en rendre compte

    Je viens de reparcourir tout le topic pour essayer de trouver d'où venait ton erreur vu qu'il ne semble pas s'agir de content.
    Au début, j'ai cru que le problème venait que tu n'avais pas corrigé les doubles quotes comme l'avait signalé @Pytet dans le message #13. Il avait tout a fait raison en tout cas : si tu utilises \r\n avec des single quotes, ça les interpréteras comme des caractères standards, il faut absolument les utiliser avec des doubles quotes.

    J'ai alors vérifié si tu avais bien fait la correction, et là tu as posté le code suivant : 'header' => "Accept:application/json\r\n X-Okapi-Key:maclefprod".
    Qui, en y regardant précisément maintenant, n'est pas correct car tu commences ton header X-Okapi-key par un espace, et ça, c'est interdit !
    C'est aussi à ça que sert l'écriture en tableau, c'est qu'on aurait vu tout de suite qu'il y avait un espace dans le header ^^

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

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

    Informations forums :
    Inscription : Février 2021
    Messages : 47
    Points : 80
    Points
    80
    Par défaut
    sans l'espace ça faisait une erreur 503,

    Je crois que tu as raison mon code marche maintenant sans le content ou avec un content vide sinon ça me fait "bad request"

    c'est bizarrz car avant j'avais un retour 401 je crois que j'arrette là sinon je vais devenir fou, une promenade en forêt s'impose lol, merci de vos aides.


    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
    <?php
     
    $opts = array('http' =>
        array(
            'method' => "GET",
            'header' =>  "Content-type: application/json\r\nAccept: application/json\r\nX-Okapi-Key: clefprod",
    'content' => ""
     
        )
    );
     
    $context = stream_context_create($opts);
     
    $result = file_get_contents('https://api.laposte.fr/suivi/v2/idships/8J00766338898?lang=fr_FR',false,$context);
     
    var_dump($result);
     
    ?>

  8. #28
    Membre habitué 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
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par darkstar
    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
    Oui par contre en prod j'ai une erreur 443 : "Unknown SSL protocol error in connection to api.laposte..."

    Ca a fonctionné une dizaine de fois et j'ai eu cette erreur, je suis un peu novice en cURL et ne parviens pas à trouver la solution.

    Nom : Screenshot 2022-05-19 at 16-07-16 Developer La Poste.png
Affichages : 100
Taille : 11,6 Ko

    J'ai recherché sur internet, certains disent de mettre cette option : CURLOPT_SSLVERSION à 1 ou 3, j'ai essayé, rien.

    PS: pour la durée de validité de la clé sandbox, vous pouvez mettre "-1" pour une validité infinie

  9. #29
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    C'est étrange... d'autant que ça ne semble pas se produire systématiquement

    A mon avis, il faudrait voir côté serveur client (donc là où est hébergé le script cURL) car il est conseillé d'avoir OpenSSL à jour pour éviter les problèmes
    Cependant, j'ai testé de mon côté sur un serveur en HTTPS et un en HTTP (bien qu'il soit préférable de toujours appeler depuis une URL en HTTPS) et je n'ai aucun soucis

    Malheureusement, vu que je n'arrive pas à reproduire le bug, je ne pense pas pouvoir aider d'avantage
    Si quelque chose me vient à l'esprit, je viendrai ajouter une réponse mais j'en doute

  10. #30
    Membre habitué 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
    Points : 168
    Points
    168
    Par défaut
    OpenSSL à jour
    Oui, chez OVH, mon SSL est régénéré récemment car j'ai ajouté un domaine, d'ailleurs je vais aller jeter un œil de ce côté là
    Bizarre oui car au début ça fonctionnait bien, puis quelques dizaine d'appels plus tard, bim !

    [EDIT] SSL OK de mon côté !
    [EDIT] Je vais tester en faisant les choses bien, avec le certificat.pem de chez laposte
    [EDIT] Rien à faire, même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . DIRECTORY_SEPARATOR . 'api-laposte-fr(ou avec "-chain").pem');
    ça ne veut pas, en local pas de souci, en prod, oui !

    Erreur retournée :

    Unknown SSL protocol error in connection to api.laposte.fr:443

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

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

    Informations forums :
    Inscription : Février 2021
    Messages : 47
    Points : 80
    Points
    80
    Par défaut
    la poste ... lol

  12. #32
    Membre habitué 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
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par serpentcorail Voir le message
    la poste ... lol
    C'est clair !

    J'ai essayé en ajoutant une nouvelle application, c'est pareil.
    EDIT : j'ai essayé avec un fichier .cer (pris depuis chrome), c'est pareil.

    J'ai tenté avec toutes les version CURLOPT_SSLVERSION, avec ou sans CURLOPT_RETURNTRANSFER, avec ou sans CURLOPT_SSL_VERIFYHOST, j'ai régénéré mon SSL, rien !

    J'attends une réponse sur leur tchat dév laposte.

  13. #33
    Membre habitué 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
    Points : 168
    Points
    168
    Par défaut
    Je viens d'essayer avec un autre hébergement (OVH aussi), connexion OK !

    Est il possible d'afficher plus d'erreur concernant la non-connexion cURL pour tenter de débuguer ?

  14. #34
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Hello @two3d,

    J'ai testé (depuis un serveur dédié) ta clé hier et je n'ai pas eu de soucis
    Cependant, je n'avais que la dernière version du code, donc avec file_get_contents()

    Ce matin, j'ai voulu réessayer avec cURL et j'ai une erreur 401,j'imagine que la clé a expiré (ou que tu l'as reset vu que tu l'avais partagée ^^)

    Pour ce qui est d'avoir plus d'infos sur cURL, tu peux activer le mode "verbose" en ajoutant un header :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt($ch, CURLOPT_VERBOSE, true);

    Perso, j'ai essayé dans tous les sens et en spammant le refresh, je n'ai jamais eu la moindre erreur

  15. #35
    Membre habitué 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
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Ce matin, j'ai voulu réessayer avec cURL et j'ai une erreur 401,j'imagine que la clé a expiré (ou que tu l'as reset vu que tu l'avais partagée ^^)
    Oui elle a expirée. Merci d'avoir essayé.

    Citation Envoyé par darkstar123456 Voir le message
    Perso, j'ai essayé dans tous les sens et en spammant le refresh, je n'ai jamais eu la moindre erreur
    Pareil sur l'hébergement où ça fonctionnait, ce qui est bizarre c'est que ça fonctionnait au début une dizaine de fois (je me trompe peut être, c'est en local que je faisais mes dernier tests puis une fois en ligne, erreur de protocole SSL) ...

    Dans tous les cas, je vais mettre à jour ma version cURL et je posterais sur ce post ma solution si j'arrive à solutionner le problème.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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