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-10-29 18:12:37

ec2311
Member
Registered: 2016-04-07
Posts: 295

APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

Bonjour

j'essaie de mettre en place l'api
GLPI 9.4.3
API est activée et fonctionnelle : j'ai bien la documentation qui s'affiche.

J'ai essayé via Powershell -> KO
J'essaie via php -> Ko aussi, mais... j'explique plus bas.



en php
j'ai repris le script de La denrée
Extrait du script :
    $api_url = ".....apirest.php";
   
    $ch = curl_init();
    $url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token."&user_token=".$user_token;
    echo("<br> URL <br/>".$url);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($ch);
    echo "<br>Json :". $json."<br/>";
    curl_close ($ch);

lors de l'execution : voici le resultat :
initSession?Content-Type=%20application/json&app_token=XXXXXXXX&user_token=YYYYYYYYY
Json :["ERROR_WRONG_APP_TOKEN_PARAMETER",

Or si je reprends la valeur URL publiée avec l'echo
(.....apirest.php/initSession?Content-Type=%20application/json&app_token=XXXXXXXX&user_token=YYYYYYYYY) et que je lance une nouvelle page : j'ai bien un retour json avec la valeur de la session

donc je me dis que l'api est bien fonctionnelle... mais pourquoi alors l'erreur de wrong app token ???
Qu'ai je oublié ?


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#2 2019-10-30 09:41:32

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

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

le app token est lié à l'adresse IP qui envoie la requête

attention si vous lancez à partir d'un navigateur sur votre poste, ce n'est pas forcément la même IP que le script sur votre serveur. ça peut expliquer.


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-10-30 10:13:56

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

Merci pour le retour

le script que j'ai écrit est lancé via navigateur.
j'ai integré lignes pour recupérer l'adresse ip lors de son execution.
Cette adresse ip est bien définie dans l'API sad

dans le repertoire files/log, api.log
2019-10-30 08:38:42 [@serveur]
Enpoint 'initSession' called by [adresse ip de mon poste]

et dans "Configuration/API" pour l'[adresse ip du poste], je retrouve bien l'app token XXXXXXXXX definie dans le script ...


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#4 2019-10-30 10:21:53

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

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

conseil :  pour le debug, à la place d'un echo $json, faites plutôt un print_r($json);   (quitte à faire un echo "<br/>";  avant et après pour une meilleur lecture)
vous aurez le json entier.
(mais ça ne résoud pas cotre problème)


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

#5 2019-10-30 10:33:26

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

URL :
.../apirest.php/initSession?Content-Type=%20application/json&app_token=XXXXXXXXX&user_token=YYYYYYYYYYYY
Adresse ip : [AdresseIP de mon poste], adresse que je viens de ressaisir dans conf/API au niveau Client API...

["ERROR_WRONG_APP_TOKEN_PARAMETER","le paramètre app_token semble incorrect....

L'url .../apirest.php/#errors est fonctionnelle et affiche bien les erreurs possibles...

Si je fais un copie/collé de l'url avec apptoken et user_token, j'ai bien un retour de session token...(onglet supplémentaire dans le navigateur)


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#6 2019-10-30 10:40:32

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

ec2311 wrote:

URL :
.../apirest.php/initSession?Content-Type=%20application/json&app_token=XXXXXXXXX&user_token=YYYYYYYYYYYY
Adresse ip : [AdresseIP de mon poste], adresse que je viens de ressaisir dans conf/API au niveau Client API...

["ERROR_WRONG_APP_TOKEN_PARAMETER","le paramètre app_token semble incorrect....

L'url .../apirest.php/#errors est fonctionnelle et affiche bien les erreurs possibles...

Si je fais un copie/collé de l'url avec apptoken et user_token, j'ai bien un retour de session token...(onglet supplémentaire dans le navigateur)

Je me pose une question :
Au niveau definition client : ce "nom" doit il correspondre à quelque chose passé en parametre ? ou on peut spécifier un nom 'parlant' quelconque ? le principal etant l'adresse IP ?


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#7 2019-10-30 10:47:34

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

Pour info :

j'ai placé le script (ici test.php) dans un repertoire 'API' histoire de ne pas marcher sur les plate-bandes de GLPI...
dans ce script, rien de particulier, pas de parametrage "GLPI"...
Extrait :
<html>
<head>
  <title>Test PHP</title>
</head>
<body>

<?php
    // Roue dentee > Personnalisation > Jeton d'API   
    $user_token = "YYYYYYYYYYYYYY";

    // Configuration > Generale > API > click Nom api client > app_token
    $app_token = "XXXXXXXXXXXX";

    $api_url=.....

et donc je l'appelle via :
http://.....api/test.php


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#8 2019-10-30 11:10:53

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

bizarre, on dirait que cela ressembel a ce post :
https://forum.glpi-project.org/viewtopic.php?id=171874


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#9 2019-10-30 11:14:43

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

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

j'avais oublié ce post.
oui ça ressemble.


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

#10 2019-10-30 11:41:46

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

Si cela peut aider :
j'ai GLPI en localhost, aussi en 9.4.3

Voici mon script php
<html>
<head>
  <title>Test PHP</title>
</head>
<body>

<?php
    // Roue dentee > Personnalisation > Jeton d'API   
    $user_token = "e2H3SUxysx5p9d5a1EZdCoOX08uzHGpjFoyFSISS";

    // Configuration > Generale > API > click Nom api client > app_token
    $app_token = "blhvpXoapKH4TTLwakevDicMom980usT8YIWx3VX";

    $api_url="http://localhost/glpi/apirest.php";
   
    $ch = curl_init();
    $url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token."&user_token=".$user_token;
    echo("<br> URL <br/>".$url);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_HTTPGET, 1);
   
    if ( isset ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
    {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif ( isset ( $_SERVER['HTTP_CLIENT_IP'] ) )
    {
        $ip  = $_SERVER['HTTP_CLIENT_IP'];
    }
    else
    {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
   
    echo "<br>Adresse ip : $ip <br/>";
    $json = curl_exec($ch);
    echo "<br>";
    print_r($json);
    echo "<br/>";
    curl_close ($ch);
    $obj = json_decode($json,true);
    $sess_token = $obj['session_token'];
    $headers =array(
        'Content-Type: application/json',
        'App-Token: ' .$app_token,
        'Session-Token: '.$sess_token
        );
   
    echo("<br> Suite <br/>".$sess_token);
   
   
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Session-Token: '.$json['session_token'])
    );

    curl_setopt($ch, CURLOPT_URL, "http://localhost/glpi/apirest.php/Computer/");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": {
    "name": "test_creation_ordi_api",
    "serial": "xxxxxx"
    }}'
    );
    $request_result = curl_exec($ch);
?>
</body>
</html>

je n'ai pas le meme comportement en localhost que sur mon instance de dev : -> Undefined Index... alors que instance de dev : pas de retour session...
Localhost -> wamp,
Dev -> IIS

voici le resultat en localhost
URL
http://localhost/glpi/apirest.php/initSession?Content-Type=%20application/json&app_token=blhvpXoapKH4TTLwakevDicMom980usT8YIWx3VX&user_token=e2H3SUxysx5p9d5a1EZdCoOX08uzHGpjFoyFSISS
Adresse ip : ::1

["ERROR_WRONG_APP_TOKEN_PARAMETER","le paramètre app_token semble incorrect; Afficher la documentation dans votre navigateur à http://localhost/glpi/apirest.php/#ERROR_WRONG_APP_TOKEN_PARAMETER"]

Notice: Undefined index: session_token in C:\wamp64\www\glpi\API\test.php on line 47

Suite

Warning: Illegal string offset 'session_token' in C:\wamp64\www\glpi\API\test.php on line 59

Warning: curl_setopt(): supplied resource is not a valid cURL handle resource in C:\wamp64\www\glpi\API\test.php on line 59

Warning: curl_setopt(): supplied resource is not a valid cURL handle resource in C:\wamp64\www\glpi\API\test.php on line 62

Warning: curl_setopt(): supplied resource is not a valid cURL handle resource in C:\wamp64\www\glpi\API\test.php on line 63

Warning: curl_setopt(): supplied resource is not a valid cURL handle resource in C:\wamp64\www\glpi\API\test.php on line 64

Warning: curl_exec(): supplied resource is not a valid cURL handle resource in C:\wamp64\www\glpi\API\test.php on line 69


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#11 2019-10-30 11:59:36

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#12 2019-11-13 16:34:06

ec2311
Member
Registered: 2016-04-07
Posts: 295

Re: APIREST : Retourne erreur ERROR_WRONG_APP_TOKEN_PARAMETER

1) En retirant la connexion app_token, le session_token est généré.

2) J'ai "forcé" la valeur de l'app_token avec un mot quelconque que j'ai remis tel quel dans app_token -> ["ERROR_WRONG_APP_TOKEN_PARAMETER","le paramètre app_token semble incorrect....

-> Ou et comment est recherché l'app_token ? pourquoi le spécifier si sans cela fonctionne ?


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

Board footer

Powered by FluxBB