You are not logged in.
Pages: 1
Bonjour,
J'ai essayé la connexion avec apirest mais je n'ai pas de retour. J'ai un environnement GLPI 9.3.4 avec CAS.
Avec le CAS ça l'air de pas fonctionner. J'ai essayé avec authbasic mais sans succès.
Voilà ce que je fait : j'utilise le compte user api sans mot de passe que j'encode en base 64 ??? par echo userapi: | base64 et le app_token que je trouve dans glpi :
curl -X GET -H 'Content-Type: application/json' -H "Authorization: Basic KDMpOgo=" -H "App-Token: 7boa74pwhukldi8sva0vm6j75wbliaqpmfzsioo1j" 'http://localhost/apirest.php/initSession'
aucun retour ..!
et
$api_url="localhost/apirest.php";
$user_token="KDMpOgo=";
$app_token="7boa74pwhukldi8sva0vm6j75wbliaqpmfzsioo1j";
echo "session token<br/>";
$ch = curl_init();
# test en ligne de commande
$url=$api_url . "/initSession?Content-Type=%20application/json&Basic=".$user_token ."&app_token=".$app_token;
echo "$api_url <br/>";
echo $url;
url_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
print_r($obj);
La galère rien en sortie ..............
Help ..
Offline
sauf si vous avez une utilisation non standard ou des redirections mais l'url est plutôt du type :
$api_url="localhost/glpi/apirest.php";
essayez aussi avec un print_r($json); vous aurez aussi plus d'info en cas d'erreur.
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
Non c'est bien la bonne URL.
pour la sortie rien de mieux avec $json.
Avec http://localhost/testapi.php (code php ci dessus) rien en sortie
avec php testapi.php
<body>
<h1>TEST API YD</h1>
session token<br/>localhost/apirest.php <br/>localhost/apirest.php/initSession?Content-Type=%20application/json&Basic=KDMpOgo=&app_token=7boa74pwhukldi8sva0vm6j75wbliaqpmfzsioo1jPHP Fatal error: Uncaught Error: Call to undefined function url_setopt() in /var/www/html/testapi.php:44
Stack trace:
#0 {main}
thrown in /var/www/html/testapi.php on line 44
Comment génère t-on le code BASe 64. Je prends le non affiché dans client api avec non vide et accès sans restriction et je tape echo userapi: |base64 -pas de mot de passe ? ) c'est comme ca ?
Est-ce que en CAS ça ne marche pas ?
Merci c'est la galère ...
Offline
non avec le code ci-dessus on obtient :
(
[0] => ERROR_LOGIN_PARAMETERS_MISSING
[1] => le(s) paramètre(s) login, password ou user_token sont manquants; Afficher la documentation dans votre navigateur à http://assistance.********/apirest.php/ … RS_MISSING
)
["ERROR_LOGIN_PARAMETERS_MISSING","le(s) paramètre(s) login, password ou user_token sont manquants; Afficher la documentation dans votre navigateur à </body>]http://assistance.ens-lyon.fr/apirest.php/#ERROR_LOGIN_PARAMETERS_MISSING"]</body>
Offline
re,
en fait j'aimerai savoir comment on créé le couple login:passwd pour accéder à glpi s'il est paramétré en CAS puisque l'on ne peut pas y accéder en CAS via l'apirest
Que faut-il prendre comme paramètre ? Le transformer en base64 ensuite pour des raisons de sécurité par la suite.
Merci
Offline
indépendamment de l'autentification CAS pour mon login avec mot de passe j'utilise :
$login="ladenree";
$password="MêmePasEnRêve":
$token=base64_encode($login.":".$password);
$url=$_SESSION['api_url'] ."/initSession/";
$headers = array(
('Content-Type: application/json'),
('App-Token: ' . $_SESSION['app_token']),
('Authorization: Basic '.$token)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
curl_close ($ch);$sess_token = $obj[session_token];
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
pas encore testé car je ne sais pas où trouver le login et mot de passe de l'accès API
J'ai bien un compte défini dans client de l'API qui s'appelle (3) et quand le clique sur (3) une fenêtre s'ouvre avec non à vide et accès pour tous mais où est le mot de passe ? Faut-il prendre un compte du CAS ? Ce compte est semble-t-il utilisé je le modifie pas. J'ai créé un compte toto avec son app_token mais c'est pareil ou est le mot de passe !
Je n'y comprends plus rien
Merci
Offline
Pour être plus clair où est-ce que l'on trouve le $login et $password dans glpi ????
Merci
Offline
les login/mdp sont les même que pour se connecter sur l'interface.
Il n'y a pas de login spécifique pour l'API.
Offline
Bonjour et merci
j'ai testé avec le plug-in rested de firefox et l'application soapui pour l'instant.
J'arrive à obtenir des informations sur les tickets comme /apirest.php/ticket/77718 ou /apirest.php/search/location mais comment obtenir le lieu d'un ticket j'ai essayé /apirest.php/search/ticket?id=77718 mais me retourne pas ce qu'il faut idem pour /apirest.php/ticket/location?id=77718
Merci
Offline
la solution la plus simple :
[...]/apirest.php/Ticket/77718 /Location/
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
{
"id": 77718,
"entities_id": 36,
"name": "Peinture sur porte de bureau abîmée",
...
"itilcategories_id": 163,
"actiontime": 0,
"is_deleted": 0,
"locations_id": 1313,
"validation_percent": 0,
"date_creation": "2018-05-04 17:17:22",
"links": ... [
/apirest.php/Ticket/77718 /Location/ retourne une json vide ?
Merci
Au fait : j'ai trouve le compte/mot de passe via echo -n Z2xwaS10d2ltbTpEcEx2bEEjI3NQ== |base64 -d
Offline
votre utilisateur a-t-il les droits sur les intitulés ? si oui :
/apirest.php/Location/1313/
devrait vous renvoyer un tableau du type :
Array ( [0] =>
Array ( [id] => 437
[date_creation] =>
[date_mod] =>
[entities_id] => 2
[is_recursive] => 1
[name] => bat1(1er étage)
[locations_id] => 17
[completename] => batiment1> bat1 (1er étage)
[comment] => adresse postale
[level] => 2
[ancestors_cache] =>
[sons_cache] =>
[building] =>
[room] =>
[latitude] =>
[longitude] =>
[altitude] =>
[links] => Array ( [0] => Array ( [rel] => Entity [href] => https://portaildsi.fr/glpi/apirest.php/Entity/2 )
[1] => Array ( [rel] => Location [href] => https://portaildsi.fr/glpi/apirest.php/Location/17 ) ) ) )
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
renvoi complet :
{
"id": 77718,
"entities_id": 36,
"name": "Peinture sur porte de bureau abîmée",
"date": "2018-05-04 17:17:22",
"closedate": null,
"solvedate": null,
"date_mod": "2018-06-22 11:49:28",
"users_id_lastupdater": 9866,
"status": 2,
"users_id_recipient": 9866,
"requesttypes_id": 1,
"content": "Bonjour,\r\nSerait-il possible de repasser une couche de peinture sur la porte de mon bureau qui est très abîmée ?\r\nMerci,\r\nCordialement,\r\nT. Zsachsssr",
"urgency": 3,
"impact": 3,
"priority": 3,
"itilcategories_id": 163,
"type": 2,
"solutiontypes_id": 0,
"solution": null,
"global_validation": 1,
"slas_ttr_id": 0,
"slas_tto_id": 0,
"ttr_slalevels_id": 0,
"time_to_resolve": null,
"time_to_own": null,
"begin_waiting_date": null,
"sla_waiting_duration": 0,
"ola_waiting_duration": 0,
"olas_tto_id": 0,
"olas_ttr_id": 0,
"ttr_olalevels_id": 0,
"internal_time_to_resolve": null,
"internal_time_to_own": null,
"waiting_duration": 0,
"close_delay_stat": 0,
"solve_delay_stat": 0,
"takeintoaccount_delay_stat": 229366,
"actiontime": 0,
"is_deleted": 0,
"locations_id": 1313,
"validation_percent": 0,
"date_creation": "2018-05-04 17:17:22",
"links": [
{
"rel": "Entity",
"href": "http://assistance.dsi/apirest.php/Entity/36"
},
{
"rel": "User",
"href": "http://assistance.dsi/apirest.php/User/9866"
},
{
"rel": "User",
"href": "http://assistance.dsi/apirest.php/User/9866"
},
{
"rel": "RequestType",
"href": "http://assistance.dsi/apirest.php/RequestType/1"
},
{
"rel": "ITILCategory",
"href": "http://assistance.dsi/apirest.php/ITILCategory/163"
},
{
"rel": "Location",
"href": "http://assistance.dsi/apirest.php/Location/1313"
},
{
"rel": "Document_Item",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/Document_Item/"
},
{
"rel": "TicketFollowup",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/TicketFollowup/"
},
{
"rel": "TicketTask",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/TicketTask/"
},
{
"rel": "TicketValidation",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/TicketValidation/"
},
{
"rel": "TicketCost",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/TicketCost/"
},
{
"rel": "Problem_Ticket",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/Problem_Ticket/"
},
{
"rel": "Change_Ticket",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/Change_Ticket/"
},
{
"rel": "Item_Ticket",
"href": "http://assistance.dsi/apirest.php/Ticket/77718/Item_Ticket/"
}
]
}
/apirest.php/ticket/77718/Location --> vide ..
Offline
essayez : apirest.php/getActiveProfile/
ça va vous renvoyer le profil actif, ensuite vérifiez avec l'interface graphique que ce profil a bien les droits pour voir les intitulés
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
et oui bien vu !
Il a le profil admin et non super-admin et pas les droits sur les intitulés.
Merci à vous.
Je vais maintenant voir ce que je peux en tirer avec du php.
A+
Offline
Bonjour,
je viens de m'apercevoir que j'ai un ancien connecteur Talend qui a toujours fonctionné lors des migrations glpi mais là plante .. Il fonctionne en 9.2.2/PHP 5.6, je compte migrer en 9.3.4 /php7.
Pouvez-cous me dire ce qui a changé dans l'API entre ces deux versions ou me donner le changelog ou ce qui poserait pb. Pourqoui l'APi n'est pas retro compatible ?
Merci
Offline
Pages: 1