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

Langage PHP Discussion :

Utiliser les headers HTTP pour l'authentification


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut Utiliser les headers HTTP pour l'authentification
    Bonjour,

    je débute avec les API j'ai donc regarder le cour sur OCR mais l'API que je voudrais utilisé n'est pas citer dedans, voici le lien de la doc ;

    https://www.verif-siret.com/api/documentation/

    mais je ne comprend pas ce que signifie "L'API de verif-siret.com utilise les headers HTTP pour l'authentification. j'ai regarder et aucun moyen de savoir je ne comprend pas comment m'authentifier sur cette api et d'envoyer un siret puis recevoir le résultat donc si quelqu'un peut m'orienter merci.

    cdt

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Cela veux dire que tu dois ajouter 2 entête quand tu crée ta requêtes HTTP pour interroger l'api.
    En l’occurrence tu dois ajouter une entête api_key avec sa valeur et api_secret avec sa valeur.

    Si tu ne sais pas ce qu'est une entête HTTP je t'invites fortement à te documenter sur le protocole HTTP sans quoi le développement via des APi et le développement web en général va être compliqué.
    http://mathieu-lemoine.developpez.co...iels/web/http/
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    oui mais justement comment créer deux en-tete ? car j'ai essayer et sa ne marche pas, j'ai essayer de les mettres dans un input mais cela ne marche pas non plus car il ne m'identifie pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form action="https://www.verif-siret.com/api/siret" method="get" enctype="application/x-www-form-urlencoded">
     
                numero de siret :<input type='text' name="siret" id="siret"/>
                <input type="hidden" value="..." id="api_key" name="api_key"/>
                <input type="hidden" value="..." id="api_secret" name="api_secret"/>
                <input type='submit' value="envoyer"/>
     
            </form>

  4. #4
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,
    En regardant le site, ils mettent à disposition une classe PHP pour pouvoir utiliser leur API.. L'as-tu testé ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    oui mais je ne comprend pas le fonctionnement, pour me connecter j'ai fait ceci :

    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
     <?php
     
            //Créer les options:
            $tonApiKey = '...';
            $tonApiSecret = '...';
     
    $opts = array(
    'http'=>array(
    'method'=>"GET",
    'header'=>"api_key: ".$tonApiKey."\r\n" .
    "api_secret: ".$tonApiSecret."\r\n" 
    )
    );
    //Appliquer les options sur le stream
    $context = stream_context_create($opts);
     
    // Récuperer le retour de la requete
    $retour = file_get_contents('https://www.verif-siret.com/api/', false, $context);
            ?>
    mais comment faire pour envoyer un numero de siret et afficher le resultat

    cdt

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    Bon j'ai un peu avancer mais j'ai a nouveau un message d'erreur voici mon 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
    22
    <?php
     
    //Créer les options:
    $apikey = '...';
    $apisecret	 = '...';
     
    $opts = array(
    'https'=>array(
    'method'=>"GET",
    'header'=>"apikey: ".$apikey."\r\n" .
    "apisecret: ".$apisecret."\r\n".
    "Content-type: application/json"
    )
    );
     
    $context = stream_context_create($opts);
     
    $url = 'https://www.verif-siret.com/api/siret?siret=42852015900024';
    // Récuperer le retour de la requete
    $retour = file_get_contents($url, false, $context);
    echo($retour);
    ?>
    et voici le message d'erreur :

    Warning: file_get_contents(https://www.verif-siret.com/api/sire...852015900024): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in /home/ubuntu/workspace/siret.php on line 20

  7. #7
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Comme je te l'avais dit ils ont mis à disposition une classe pour exploiter leur API (cf le lien cette classe PHP sur leur site)
    - Télécharges la classe et crée un fichier par exemple VerifsiretApi.php et remplace les valeurs $apiKey et $secretKey par les tiennes
    - Dans ton fichier actuel, tu fais un include du fichier

    Essaie ça, pas testé

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $api = new VerifsiretApi();
    if ($api->sendRequest('siret', array('siret' => '42852015900024'))) {
       $api->debug();
    }

    Si tout se passe bien, tu devrais avoir un tableau

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    Merci! sa marche enfin mais je n'ai pas le retour de la réponse, je devrais avoir le nom de l'entreprise comme retour et voici ce que j'obtient :

    Nom : Capture.PNG
Affichages : 874
Taille : 15,7 Ko


    comment afficher le retour ?

  9. #9
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Laisse tomber leur classe et utilise ceci

    Code php : 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
    22
    23
    24
    25
     
    <?php
     
    $apiKey = 'xxxxxx';
    $secretKey = 'xxxxx'; 
    $siret = 42852015900024;
    $url = "http://www.verif-siret.com/api/siret?siret={$siret}";
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERPWD, "{$apiKey}:{$secretKey}");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
     
    $output = curl_exec($ch);
    curl_close($ch);
     
    $response = json_decode($output, true);
     
    if (isset($response['array_return'])) {
        $result = $response['array_return'];
    }

    $result est un tableau, fais un var_dump pour son contenu et tu verras comment l'exploiter

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    merci beaucoup sa marche ! mais je n’arrive exploiter le tableau j'ai ceci qui s'affiche bien :

    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
    22
    array (size=1)
      0 => 
        array (size=124)
          'id' => string '6628442' (length=7)
          'SIRET' => string '52215758500020' (length=14)
          'SIRETAPE' => string '522157585000205610C' (length=19)
          'SIREN' => string '522157585' (length=9)
          'NIC' => string '00020' (length=5)
          'L1_NORMALISEE' => string 'KFC' (length=3)
          'L2_NORMALISEE' => string 'RESTALE' (length=7)
          'L3_NORMALISEE' => string '' (length=0)
          'L4_NORMALISEE' => string '130 B CHEMIN SOUS SAINT ETIENNE' (length=31)
          'L5_NORMALISEE' => string '' (length=0)
          'L6_NORMALISEE' => string '30100 ALES' (length=10)
          'L7_NORMALISEE' => string 'FRANCE' (length=6)
          'L1_DECLAREE' => string 'RESTALE' (length=7)
          'L2_DECLAREE' => string 'KFC' (length=3)
          'L3_DECLAREE' => string '' (length=0)
          'L4_DECLAREE' => string '130 B CHE SOUS ST ETIENNE' (length=25)
          'L5_DECLAREE' => string '' (length=0)
          'L6_DECLAREE' => string '30100 ALES' (length=10)
          'L7_DECLAREE' => string '' (length=0)
    mais impossible de selectionner les lignes a afficher, j'ai essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($result['SIRET']);
    mais sa ne marche pas je ne comprend pas pourquoi ?

    cdt

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Parce que c'est un tableau à 2 dimensions

    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Est-ce que je peux utiliser les mêmes variables pour javascript et PHP?
    Par sparil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/07/2007, 13h23
  2. Réponses: 5
    Dernier message: 11/01/2007, 09h50
  3. [débutante]utiliser les classes css pour surligner des liens
    Par Mitaka dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/01/2006, 09h37
  4. Peut-on utiliser les SGBDs libres pour construire un DWH ?
    Par daabos dans le forum Alimentation
    Réponses: 6
    Dernier message: 01/10/2004, 10h35

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