You are not logged in.
Pages: 1
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
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
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
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
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
Et donc, avez-vous accès à la page apirest.php ?
Juste la page, sans paramètre, sans rien.
Offline
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
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
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
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
Oui, le user token a une durée de vie assez courte.
Offline
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
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
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
Pages: 1