You are not logged in.
Pages: 1
Bonjour,
Je teste depuis quelques jours l'API REST et commence à comprendre son fonctionnement.
Avec la librairie curl en PHP, J'ai réussi à récupérer des infos dans la base (infos d'un PC par exemple) et également à créer des items. Exemple:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Session-Token: '.$json['session_token'])
);
curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/Ticket/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": {
"name": "test_creation_ticket_auto",
"content": "Corps de texte",
"actiontime": "Durée",
"closedate": "'.date("Y-m-d H:i:s").'",
"solvedate": "'.date("Y-m-d H:i:s").'",
"itilcategories_id": "31",
"type": "2",
"status": "6",
}}'
);
$request_result = curl_exec($ch);
Je butte néanmoins sur un problème: lors de la création d'item, dans mon cas un ticket, comment faire pour ajouter des infos dans les tables annexes ? J'arrive bien à ajouter le titre, la description, etc... mais je n'arrive pas a trouver comment ajouter l'utilisateur "demandeur" et l'utilisateur "Attribué".
En regardant la structure de la base MySQL, ces infos sont en effet dans une autre table. j'ai donc essayé de créer un item de cette table de la même façon:
curl_setopt($ch, CURLOPT_URL, "http://glpi.chr/apirest.php/Ticket_User/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": {
"tickets_id": "22761",
"users_id": "777",
"type": "1"
}}'
);
$request_result = curl_exec($ch);
Cela me retourne l'erreur suivante:
ERROR_RIGHT_MISSING [1] => Vous n'avez pas les droits requis pour réaliser cette action.
Je suis pourtant super-admin.
Pourriez vous m'aider ?
Merci
Offline
Petit Up, quelqu'un peut il me dire ou trouver du support pour l'API ?
Merci
Offline
Bonjour m0c,
As-tu vérifié dans Administration > Profil > "Super-Admin" ?
J'avais le même soucis en utilisant le plugin webservices il me manquait une autorisation sur le profil Super-Admin.
Voir ici : http://forum.glpi-project.org/viewtopic.php?id=152177
Je souhaite migrer en glpi 9.1.2 et basculer mes scripts webservices vers la nouvelle structure API REST.
Je suis bloqué au début je n'arrive pas à faire l'initSession peux tu m'aiguiller ?
Voici mon code :
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'App-Token: '.$apptoken,
'Authorization: '.$user_token )
);
curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/initSession/");
$request_result = curl_exec($ch);
curl_close($ch);
J'obtiens ce message :
["ERROR_LOGIN_PARAMETERS_MISSING","le(s) paramètre(s) login, password ou user_token sont manquants; Afficher la documentation dans votre navigateur à http://glpi/apirest.php/#ERROR_LOGIN_PARAMETERS_MISSING"]
Last edited by liosan (2017-04-05 16:48:24)
* GLPI 9.2.1
* FusionInventory 9.1+1.0
* Agent Fusion 2.4
Offline
Bonjour m0c,
As-tu vérifié dans Administration > Profil > "Super-Admin" ?
J'avais le même soucis en utilisant le plugin webservices il me manquait une autorisation sur le profil Super-Admin.
Voir ici : http://forum.glpi-project.org/viewtopic.php?id=152177Je souhaite migrer en glpi 9.1.2 et basculer mes scripts webservices vers la nouvelle structure API REST.
Je suis bloqué au début je n'arrive pas à faire l'initSession peux tu m'aiguiller ?Voici mon code :
$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'App-Token: '.$apptoken, 'Authorization: '.$user_token ) ); curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/initSession/"); $request_result = curl_exec($ch); curl_close($ch);
J'obtiens ce message :
["ERROR_LOGIN_PARAMETERS_MISSING","le(s) paramètre(s) login, password ou user_token sont manquants; Afficher la documentation dans votre navigateur à http://glpi/apirest.php/#ERROR_LOGIN_PARAMETERS_MISSING"]
Bonjour,
Essaie en remplaçant : 'Authorization: '.$user_token
par : 'Authorization: user_token ' . $user_token
A+
Last edited by BillyD (2017-04-27 11:48:34)
Offline
Petit Up, quelqu'un peut il me dire ou trouver du support pour l'API ?
Merci
Salut,
Pour ma part j'utilise un client REST PHP simple trouvé sur GitHub : https://github.com/tcdent/php-restclient
Mon code ressemble à ça pour attribuer un ticket :
$api = new RestClient(
[
"base_url" => $api_url,
"headers" => [
"Session-Token" => $sess_token,
"App-Token" => $app_token
],
"parameters" => [
"input" => [
[
"users_id" => "{$user_id}",
"tickets_id" => "{$ticket_id}", // Si cela n'est pas renseigné, ça génère une erreur de droit
"type" => "2", // 1 = demandeur, 2 = attribué, 3 = observateur
"use_notification" => "0", // Pour ne pas envoyer de notification
"alternative_email" => "",
]
]
],
]
);
$result = $api->post("Ticket/{$ticket_id}/Ticket_User");
Offline
Pages: 1