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-05-02 10:56:12

falco2001
Member
Registered: 2016-02-11
Posts: 251

Apirest pas de ticket de session

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

#2 2019-05-02 11:48:04

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

Re: Apirest pas de ticket de session

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.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#3 2019-05-02 12:00:41

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#4 2019-05-02 13:59:30

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#5 2019-05-02 14:05:49

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#6 2019-05-02 14:10:20

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

Re: Apirest pas de ticket de session

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.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#7 2019-05-02 15:54:59

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#8 2019-05-03 09:15:28

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

Pour être plus clair où est-ce que l'on trouve le $login et $password dans glpi ????

Merci

Offline

#9 2019-05-03 09:29:41

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

Re: Apirest pas de ticket de session

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

#10 2019-05-09 10:47:57

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#11 2019-05-09 10:55:59

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

Re: Apirest pas de ticket de session

la solution la plus simple :

[...]/apirest.php/Ticket/77718 /Location/


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#12 2019-05-09 11:19:44

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

{
   "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

#13 2019-05-09 11:27:43

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

Re: Apirest pas de ticket de session

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.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#14 2019-05-09 12:06:58

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#15 2019-05-09 14:03:00

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

Re: Apirest pas de ticket de session

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.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#16 2019-05-09 14:04:45

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

#17 2019-05-14 08:57:46

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: Apirest pas de ticket de session

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

Board footer

Powered by FluxBB