[RESOLU] API

Eléphanteau du PHP | 44 Messages

28 avr. 2022, 17:44

Bonjour,
Je dois faire une liaison avec une API pour archiver des commandes.
Bien sur, les créateurs de l'API n'ont pas prévu de fonction pour cela.
J'ai trouvé comment archiver une commande via html et un formulaire en méthode POST en passant par la plateforme de l'API, j'ai aussi trouvé du code qui me semble être bon:
<?php
$postdata = http_build_query(
    array(
        'id' => 'xxx-xxx-xxx'
    )
);

$opts = array('https' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);
$result = file_get_contents('https://xxxxxxxxxxx', false, $context);

var_dump($result);
MAIS, parce qu'il faut un mais, mon var_dump me renvoie la page de connexion à la plateforme, et là, je pêche complètement, comment faire pour passer cette étape de manière automatique? (Bon, en même temps la journée est presque terminée, j'ai plus les yeux en face des trous :roll: )
L'illogisme n'est que la logique des autres!

Mammouth du PHP | 1029 Messages

29 avr. 2022, 11:29

Bonjour, voici la définition de file_get_content()
file_get_contents — Lit tout un fichier dans une chaîne

Donc le comportement est attendu.
Si vous voulez envoyer une action, la doc de stream_context_create() préconise un fopen()
L'expérience est la somme de toutes nos erreurs.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 avr. 2022, 13:46

Le problème est surtout de
1) s'identifier
2) effectuer l'action souhaitée tout en conservant la même session (et donc les cookies d'identification)

Voici un article qui explique bien la méthode "à l'ancienne" avec Curl et une méthode plus simple avec la librairie PHP Guzzle :
https://www.pixelite.co.nz/article/guzz ... ymfony-20/
https://docs.guzzlephp.org/en/stable/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 44 Messages

05 mai 2022, 17:14

Bonjour et désolé pour mon retour ultra rapide :p
Je regarde ça dès que je peux, cette fonction était un petit plus sur le projet, donc pas prioritaire du tout, mais merci et je reviens vers vous dès que j'en sais plus!!
L'illogisme n'est que la logique des autres!

Eléphanteau du PHP | 44 Messages

17 mai 2022, 16:45

Bonjour,
bon, au final, on abandonne cette partie, donc sujet clos.
On verra peut-être plus tard.
Merci à tous quand même!
L'illogisme n'est que la logique des autres!