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 2020-07-08 13:49:46

keepcool5283
Member
Registered: 2013-10-10
Posts: 158

Obtenir l'id d'un utilisateur API

Bonjour,

Je cherche à obtenir l'id d'un user en fonction de son nom via une requette HTTP.
Je me suis basé sur un ancien post qui préconisé cette commande : $url=$api_url . "/search/User?forcedisplay[0]=2&forcedisplay[1]=5&criteria[1][field]=1&criteria[1][searchtype]=2&criteria[1][value]=" . $username;

Malheureusement quand je tape ça, ça me donne toujours ce résultat :
{"totalcount":0,"count":0,"sort":1,"order":"ASC","content-range":"0--1/0"}

Voici mon url :
http://glpiurl/apirest.php/search/User/?forcedisplay[0]=2&forcedisplay[1]=34&is_deleted=0&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]="MonNom"/?Content-Type=application/json&session_token=$User_Token&App-Token=$AppToken

Si je tape celle-ci : http://glpi_url/apirest.php/User/?Content-Type=application/json&session_token=$Session_Token&App-Token=$App_Token, j'ai bien ma liste des utilisateurs

Auriez vous une idée ?

Merci


Apps Android GLPI Management : https://play.google.com/store/apps/deta … fr.dmn.app
Site Web : http://mdu-tech.fr/
GLPI 9.5.5 sur IIS 10 / PHP 8 / MySQL

Offline

#2 2020-07-08 14:22:20

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

Re: Obtenir l'id d'un utilisateur API

dans votre première requête le searchtype est 'contains'  et pas '2'

$url=$api_url . "/search/User?forcedisplay[0]=2&forcedisplay[1]=5&criteria[1][field]=1&criteria[1][searchtype]=contains&criteria[1][value]=" . $username;

dans votre 2eme  requete vous avez 2 ?  il faut remplacer le 2eme ? par un "&"


je déplace dans la section API..


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

#3 2020-07-08 14:54:29

keepcool5283
Member
Registered: 2013-10-10
Posts: 158

Re: Obtenir l'id d'un utilisateur API

Merci,

Malheureusement même en changeant j'ai toujours le même résultat.
Pour la valeur je dois bien la mettre entre guillemets ? Est-ce que ça doit être une valeur exacte du genre "NOM Prenom" ou est-ce que je peux mettre une valeur approximative ?

Merci encore


Apps Android GLPI Management : https://play.google.com/store/apps/deta … fr.dmn.app
Site Web : http://mdu-tech.fr/
GLPI 9.5.5 sur IIS 10 / PHP 8 / MySQL

Offline

#4 2020-07-08 15:00:18

keepcool5283
Member
Registered: 2013-10-10
Posts: 158

Re: Obtenir l'id d'un utilisateur API

Ah sans les guillements ça fonctionne smile Merci bien
Par contre si je souhaite avoir juste la valeur de l'ID et rien d'autre c'est possible ?
Au lieu de ça :
{"totalcount":1,"count":1,"sort":1,"order":"ASC","data":[{"1":"prenom NOM","80":"Root entity > SOCIETE","2":24,"34":"Nom"}],"content-range":"0-0/1"}
Avoir ça :
24

Merci encore


Apps Android GLPI Management : https://play.google.com/store/apps/deta … fr.dmn.app
Site Web : http://mdu-tech.fr/
GLPI 9.5.5 sur IIS 10 / PHP 8 / MySQL

Offline

#5 2020-07-08 15:00:47

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

Re: Obtenir l'id d'un utilisateur API

criteria[1][field]=1  : vous faîtes une recherche sur l'identifiant, pas sur le nom

si vous voulez une rcherche sur le nom utilisez la colonne 34   : criteria[1][field]=34


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

#6 2020-07-08 15:04:32

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

Re: Obtenir l'id d'un utilisateur API

attention vous aurez toujours un tableau en sortie car vous avez potentiellement des homonymes donc il faut prévoir plusieurs lignes


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

#7 2020-07-08 15:43:15

keepcool5283
Member
Registered: 2013-10-10
Posts: 158

Re: Obtenir l'id d'un utilisateur API

Oui c'est vrai pour la gestion des homonymes il faut que je fasse gaffe.
Pour l'instant je cherche juste à récupérer la valeur de l'user_ID d'une personne pour la mettre dans une variable


Apps Android GLPI Management : https://play.google.com/store/apps/deta … fr.dmn.app
Site Web : http://mdu-tech.fr/
GLPI 9.5.5 sur IIS 10 / PHP 8 / MySQL

Offline

#8 2020-07-08 15:54:15

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

Re: Obtenir l'id d'un utilisateur API

si vous avez un  et un seul ( faites les tests) resultat, mettez votre resulat dans la variable $json par exemple et

$obj = json_decode($json,true);
$id=$obj['data'][0][2];

et l id utilisateur est dans la variable $ID.


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

#9 2020-07-08 19:43:07

keepcool5283
Member
Registered: 2013-10-10
Posts: 158

Re: Obtenir l'id d'un utilisateur API

Super ça marche nikel.
par contre où est ce qu'on peut trouver une explication pour les codes des paramètres qu'il faut mettre ?

Merci


Apps Android GLPI Management : https://play.google.com/store/apps/deta … fr.dmn.app
Site Web : http://mdu-tech.fr/
GLPI 9.5.5 sur IIS 10 / PHP 8 / MySQL

Offline

#10 2020-07-08 19:54:23

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

Re: Obtenir l'id d'un utilisateur API

$obj = json_decode($json,true);   ça c'est une fonction php pour transformer un jsion en tableau php
$obj['data'][0][2];
le 'data" correspond  au sous tableau le la réponse qui est indiquée ici : {"totalcount":1,"count":1,"sort":1,"order":"ASC","data":[{"1":"prenom NOM","80":"Root entity > SOCIETE","2":24,"34":"Nom"}],"content-range":"0-0/1"} 
le [0] correspond à la première ligne du tableau  (c'est du php)

le [2] correspond au code de la colonne GLPI (id) : le même que vous utilisez pour le forcedisplay
vous pouvez avoir toutes les correspondances code/colonne pour un item avec glpi/apirest.php/listSearchOptions/User/


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

#11 2020-07-08 20:01:30

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

Re: Obtenir l'id d'un utilisateur API

une autre astuce pour avoir les codes :
allez dans l'interface GLPI, faite une recherche sur un paramètre ( par exemple "l'identifiant contient toto" et regardez l'url: vous trouverez l'index dedans (en fait il y a déjà la requète complète bien formatée, supprimez le token final


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

Board footer

Powered by FluxBB