You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2020-06-08 12:02:56

rincevent
Member
Registered: 2018-04-26
Posts: 61

Utilisation de l'api pour une page web

Bonjour,
Je réussi bien a me connecter a Glpi via l'api avec php. Mon api est bien configuré.

Mais je ne comprend pas l'utilisation des requêtes. J'aimerais juste afficher les tickets en cours dans une page web.

Pourriez vous me montre un code permettant la requête et l'affichage. Je ne trouve ce genre d'exemple dans le forum et dans la doc officielle. J'aimerais comprendre le fonctionnement.

merci d'avance

Offline

#2 2020-06-08 13:29:50

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Utilisation de l'api pour une page web

1) vous vous connectez via l'API avec un compte qui peut voir les tickets.
2)vous lancez un search sur les tickets ouverts  : avec un GET +url de l'API + headers
$url="/search/Ticket/?is_deleted=0&criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notold&forcedisplay[0]=1";

faites votre GET et placez le resultat dans une variable $obj
vérifiez par un print_r($obj) que vous récupérez bien une liste de tickets et passez au 3 si ça marche

3)

echo "<table><tr><th>id</th><th>titre</th><tr>";
foreach($obj[data] as $ticket){
echo "<tr><td>".$ticket[2]."</td><td> ".$ticket[1]."</td></tr>";
}
echo "</table>";


voilà !


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#3 2020-06-08 16:19:09

rincevent
Member
Registered: 2018-04-26
Posts: 61

Re: Utilisation de l'api pour une page web

Bonjour et merci pour votre réponse.

J'ai écrit mon code ainsi :

//initialisation api glpi
$ch = curl_init();
$url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token ."&user_token=".$user_token;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$objet = json_decode($json,true);
$sess_token = $objet['session_token'];
$headers = array(
('Content-Type: application/json'),
('App-Token: ' . $app_token),
('Session-Token: '.$sess_token)  
);
print_r($sess_token);
print_r($app_token);
print_r($user_token);

$ch = curl_init();
$url=$api_url . "/search/Ticket/?is_deleted=0&criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notold&forcedisplay[0]=1";
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
print_r($obj['data'][0]);

Plusieurs problèmes :
Le print_r($sess_token); ne retourne rien. -> échec de l'authentification ?
J'ai un time out sur le $json = curl_exec($ch); (surement à cause d'un échec de l'authentification).

J'arrive à exécuter cette comme en dans un terminal avec curl, donc, pour moi, l'accès à l'api est fonctionnel.

Avez vous une idée ?
Merci

Offline

#4 2020-06-08 16:47:27

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Utilisation de l'api pour une page web

tant que vous n'avez pas le session token, pas la peine de tenter d'aller plus loin.

est ce que vous avez bien la même adresse IP  dans les 2 cas ( terminal et page php) ? cette ip est elle activée dans glpi

après l'authentification essayez un echo $url;
et copiez cette url dans votre navigateur avez vous une réponse ?.
ajoutez avant le curlexec :
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

et faites un print_r($http_status);
de même faites un  print_r($json) après l'authentification, il peut y avoir des infos importantes pour le debug.


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#5 2020-06-10 10:55:17

rincevent
Member
Registered: 2018-04-26
Posts: 61

Re: Utilisation de l'api pour une page web

Pour l'instant, je ne passe pas l'authentification avec mon code en php.
C'est pourtant bien fonctionnel avec Curl.

Je met de coté pour l'instant, je vais partir sur des requêtes sql.

Merci pour vos réponses et votre disponibilité.

Offline

Board footer

Powered by FluxBB