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 2017-10-03 16:28:43

liosan
Member
Registered: 2015-11-25
Posts: 26

Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

Bonjour,

Je rencontre des difficultés d'utilisation de l'API.

La phase InitSession me renvoie bien le Session Token cependant lors de la seconde phase (création ticket) j'obtiens toujours la même erreur : "ERROR_APP_TOKEN_PARAMETERS_MISSING"
alors que j'envoie bien le bon paramètre dans mon header.

Voici ci dessous mon script, avez vous une idée pour me mettre sur la voie ?

 
<?php

$user_token = "MON_USER_TOKEN";
$app_token = "MON_APP_TOKEN";


$api_url="https://MON_DOMAINE/glpi/apirest.php";
    
    $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);
    $obj = json_decode($json,true);
    $sess_token = $obj['session_token'];
    $headers =array(
        'Content-Type: application/json',
        'App-Token: ' .$app_token,
        'Session-Token: '.$sess_token  
        );

 echo $sess_token;


$titre_ticket="titre";
$contenu_ticket="contenu";

$url=$api_url . "/Ticket/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": {
	"name": "'.$titre_ticket.'",
    "content": "'.$contenu_ticket.'"
	}}'
);
$json = curl_exec($ch);
curl_close ($ch);

$obj = json_decode($json,true);
print_r($json);

?>

Merci pour vos retours


* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4

Offline

#2 2017-10-03 16:59:07

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

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

Bonjour,
avez vous essayé un print_r($headers) ?
je ne vois pas de raisons pour qu'il ne soit pas bon mais il vaut mieux vérifier ....

j'ai collé votre code sur ma 9.1.6 et ça marche. dès que j'ai un peu de temps je le teste en 9.2


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 2017-10-03 17:02:12

liosan
Member
Registered: 2015-11-25
Posts: 26

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

Le print_r me renvoie bien les bonnes valeurs :

[0] => Content-Type: application/json [1] => App-Token: MON_APP_TOKEN [2] => Session-Token: MON_SSESSION_TOKEN

Mon glpi est sur hébergement OVH mutualisé .. Mais ce script à déjà fonctionné, il a cessé de fonctionner lors d'une mise à jour (bien avant la 9.2) il a fallu réinstaller le serveur de zéro (sans faire de MAJ) pour que l'API refonctionne.

Là je MAJ vers la 9.2 et rebelote l'API ne fonctionne plus correctement.


Je sature et j'ai l'impression d'être le seul dans ce cas.

Last edited by liosan (2017-10-03 17:06:07)


* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4

Offline

#4 2017-10-03 17:13:46

liosan
Member
Registered: 2015-11-25
Posts: 26

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

D'ailleurs avec l'arrivée de la 9.2 , on trouve un jeton supplémentaire sur chaque User, nous avons l'ancien "personal toke"n que nous utilisions pour l'InitSession mais qui ne fonctionne plus à présent et l'API token (Nouveau) qui lui fonctionne pour l'appel InitSession.

Pas plus d'informations sur la documentation de l'API à ce sujet


* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4

Offline

#5 2017-10-03 17:15:57

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

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

vous pouvez passer les jetons dans l'url je pense  comme pour le initsession.

je ne peux pas encore migrer mon glpi (hebergé en mutualisé OVH) en 9.2 il me manque quelques plugins qui ne sont pas encore migrés.
je vais le tester en local dès que j'ai un peu de temps.


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

#6 2017-10-03 17:25:30

liosan
Member
Registered: 2015-11-25
Posts: 26

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

Merci beaucoup encore une fois pour votre implication et votre réactivité.

J'ai déjà fait l'essai en passant l'App-token dans l'url comme pour l'initSession mais même résultat.


* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4

Offline

#7 2017-10-04 08:55:59

liosan
Member
Registered: 2015-11-25
Posts: 26

Re: Creation Ticket via API GLPI 9.2 APP_TOKEN_PARAMETERS_MISSING

Bonjour La Denrée,

Je viens par hasard de trouver une solution à mon problème en modifiant le apirest.class.php

J'ai du faire un rollback d'un bugfix datant de Aout 2016.
Voici le lien GitHub : https://github.com/glpi-project/glpi/co … 2139ba5285

Je n'ai modifié que cette partie, actuellement en 9.2 nous avons le code en vert. J'ai du remodifier et remettre les valeurs en rouge comme sur l'image ci-après.
Blfd0G6.png

Il faudrait remonter cette info à des développeurs afin d'une part de trouver une explication logique et d'autre part de corriger.

Je reste disponible si besoin d'informations supplémentaires.


* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4

Offline

Board footer

Powered by FluxBB