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 2019-02-26 12:48:24

user24
Member
Registered: 2019-02-25
Posts: 7

Création ticket via API

Bonjour,

Je travaille actuellement sur un projet d'automatisation et je dois programmer  un script en bash qui permet de créer un ticket par le biais de L'API. J'ai pensé à la méthode curl mais j'en ai aucune idée comment je devrais l'utiliser pour envoyer des données : Création de ticket à l'API.

Merci pour votre aide, vos informations et rerenseignements.

Bonne journée.

Offline

#2 2019-02-26 15:13:18

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 734

Re: Création ticket via API

1. Activer l'API REST dans la config de GLPI
2. Se rendre sur http(s)://[MonServeurGLPI]/apirest.php
3. Lire la doc :-)

Bon amusement ;-)

Offline

#3 2019-02-26 17:35:17

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

Merci.
Malheureusement initSession ne fonctionne pas. J'ai mis le user jeton et app jeton mais je reçois toujours l'erreur d'un accès non autorisé ..

Merci beaucoup

Offline

#4 2019-02-27 09:30:47

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

Re: Création ticket via API

accédez vous à la page  monserveur/glpi/apirest.php  ?


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#5 2019-02-27 12:04:58

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

Bonjour,

Oui vous avez raison. Je viens de revérifier et donc il faut faire une première authentication pour accéder au domaine du projet avant de pouvoir accéder à GLPI et à son API.

Alors j'ai fais comme suit:

curl https://domaine.com --user username:password | curl -X GET \
-H 'Content-Type: application/json' \
-H "Authorization: user_token mytoken1" \
-H "App-Token: mytoken2" \
'https://domaine.com/apirest.php/initSession'

Malheureusement l’enchaînement de deux commande curl ne marche pas.

curl https://domaine.com --user username:password fonctionne bien.

Merci pour vos conseils.

Offline

#6 2019-02-27 12:30:16

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 734

Re: Création ticket via API

Et donc, avez-vous accès à la page apirest.php ?

Juste la page, sans paramètre, sans rien.

Offline

#7 2019-02-27 13:23:07

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

Que ce soit avec le navigateur ou curl je peux accéder à la page  apirest.php en ajoutant le nom d'utilisateur et le mot de passe sinon l'accès est  non autorisé.

J'ai essayé ce code :

curl -u usernam:password  -X GET \
-H 'Content-Type: application/json' \
-H "Authorization: user_token mytoken1" \
-H "App-Token: mytoken2" \
'https://domaine/apirest.php/initSession'

Mais j'ai erreur d'authentication.

Offline

#8 2019-02-27 17:44:06

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 734

Re: Création ticket via API

user24 wrote:

Que ce soit avec le navigateur ou curl je peux accéder à la page  apirest.php en ajoutant le nom d'utilisateur et le mot de passe sinon l'accès est non autorisé.

ça, c'est étrange.

Chez moi, la page apirest.php ne me demande aucune authentification.

Offline

#9 2019-02-27 18:35:30

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

C'est sur un serveur de production. Donc c'est protégé par un nom d'utilisateur et un mot de passe connu et fixe.

Je peux accéder à apirest. php ou sur le site mais il faut utiliser ce nom d'utilisateur et ce mot de passe. Puis pour le site je peux me connecter en utilisant mes propres identifiants.

Donc il faut demander à curl de faire deux authentification un après l'autre. Mais je n'arrive pas à le faire avec curl.

J'ai fais le script suivant sans pouvoir le tester puisque je me bloque à l'étape d'authentification.

NAME="Acces GLPI Account"
URL="myserver/apirest.php"
USER_TOKEN=$1
APP_TOKEN=$2
TICKET_NAME=$3
TICKET_DESCRIPTION=$4


#initSession

SESSION_TOKEN=curl -X GET \
-H 'Content-Type: application/json' \
-H "Authorization: user_token $USER_TOKEN" \
-H "App-Token: $APP_TOKEN" \
"$URL/initSession" 

#addItem

curl -X POST \
-H 'Content-Type: application/json' \
-H "Session-Token: $SESSION_TOKEN" \
-H "App-Token: $APP_TOKEN" \
-d '{"input": {"name": "echo'$TICKET_NAME'", "content": "echo'$TICKET_DESCRIPTION'"}}' \
"$URL/Ticket/"

Offline

#10 2019-02-28 17:01:52

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

Bonjour
Le code suivant marche bien en utilisant une requête  call avec deux authentications.
Mon problème maintenant c'est que l'user_token est invalide. bizarre.

il a fonctionné un moment puis plus rien. est ce en rapport avec le temps de prise en charge quand on génère un nouveau user_token??
et ce user_token est valide pour combien de temps svp ??

["ERROR_GLPI_LOGIN_USER_TOKEN","le paramètre user_token semble incorrect"]

SESSION_TOKEN=curl -X GET \
-u login:password \
-H 'Content-Type: application/json' \
-H "Authorization: user_token $USER_TOKEN" \
-H "App-Token: $APP_TOKEN" \
"$URL/initSession" 

Offline

#11 2019-02-28 17:07:25

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 734

Re: Création ticket via API

Oui, le user token a une durée de vie assez courte.

Offline

#12 2019-03-04 10:34:50

orthagh
Administrator
From: TECLIB - CAEN
Registered: 2010-11-30
Posts: 662
Website

Re: Création ticket via API

La validité du user_token est basé sur la durée des sessions php.
Vous pouvez facilement l'augmenter via le fichier php.ini.

Cela dit, je vous conseille de développer dans votre intégration un mécanisme de reconnexion, si vous recevez le message d'erreur de token invalide, vous devriez toujours reinitialisez la connexion.
Ce n'est pas un mécanisme spécifique à GLPI, toutes consommations d'api rest doit intégrer ce genre de processus.

Offline

#13 2019-03-06 18:41:22

user24
Member
Registered: 2019-02-25
Posts: 7

Re: Création ticket via API

Bonjour,

Merci pour votre recommendation.

J'ai fait le script Bash qui permet de créer un Ticket via l'API de GLPI. il est fonctionnel à 100%.

C'est ma première fois que j'utilise une API et c'est celle de GLPI.  Je suis très content que ça marche bien.

Maintenant je passe à l'étape suivante qui consiste à intégrer mon script sous Zabbix.

Offline

#14 2019-05-27 16:10:30

ykatir22
Member
Registered: 2019-05-17
Posts: 9

Re: Création ticket via API

bonjour,
je souhaite créer un ticket GLPI via l'api rest mais je trouve pas le bon lien pour ça
pourrais je l'avoir SVP

merci.

Offline

Board footer

Powered by FluxBB