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-02-06 16:16:21

m0c
Member
Registered: 2010-04-07
Posts: 2

API REST - Création ticket

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

#2 2017-02-08 14:51:10

m0c
Member
Registered: 2010-04-07
Posts: 2

Re: API REST - Création ticket

Petit Up, quelqu'un peut il me dire ou trouver du support pour l'API ?
Merci

Offline

#3 2017-04-05 16:47:35

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

Re: API REST - Création ticket

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 smile 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

#4 2017-04-27 11:43:44

BillyD
Member
From: Nice, France
Registered: 2015-08-26
Posts: 27
Website

Re: API REST - Création ticket

liosan wrote:

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 smile 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

#5 2017-04-27 11:47:37

BillyD
Member
From: Nice, France
Registered: 2015-08-26
Posts: 27
Website

Re: API REST - Création ticket

m0c wrote:

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

Board footer

Powered by FluxBB