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-01-20 14:18:58

ben2249
Member
From: FRANCE
Registered: 2019-12-03
Posts: 35

[solved] Enquête de satisfaction

Bonjour,

J'ai un problème. Je ne parviens pas à remplir l'enquête de satisfaction, alors que j'arrive à récupérer celles qui sont déjà remplies.
Voici mon code actuel (de débuggage) :

$json=' {
                    "input":
                    {
                        "id":"8609",
                        "tickets_id":"'.$tickets_id.'",
                        "comment":"' . $comment .'",
                        "satisfaction":"'.$satisfaction.'"
                      }
                }
        ';

        $fin_url     = "?session_token=$sess_token&app_token=$this->app_token";
       // $url         = $this->api_url ."/Ticket/".$tickets_id."/Ticketsatisfaction/$fin_url";
        $url         = $this->api_url ."/Ticketsatisfaction/8609/$fin_url";
        $ch          = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json',
                'Session-Token: '.$sess_token)
        );
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
         curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        $json        = curl_exec($ch);

Last edited by ben2249 (2020-02-25 09:06:23)

Offline

#2 2020-01-24 00:23:09

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

Re: [solved] Enquête de satisfaction

bonsoir,
voici un bout de mon code  avec lequel je peux remplir mes enquêtes de satisfaction  :

function glpi_get($itemtype){
	$url=$_SESSION['api_url'] .$itemtype;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $_SESSION['headers']);
	$json = curl_exec($ch);
	//print_r($json);
	curl_close ($ch);
	$obj = json_decode($json,true);
	return $obj;
	
}
function glpi_post($itemtype,$fields){
		$url=$_SESSION['api_url'] .$itemtype;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $_SESSION['headers']);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
	$json = curl_exec($ch);
	//print_r($json);
	curl_close ($ch);
	$obj = json_decode($json,true);
	return $obj;
}
function glpi_put($itemtype,$fields){
	$url=$_SESSION['api_url'] .$itemtype;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $_SESSION['headers']);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
	curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
	$json = curl_exec($ch);
	//print_r($json);
	curl_close ($ch);
	$obj = json_decode($json,true);
	return $obj;
}

$ticketid=2878;
$url="/Ticket/".$ticketid."/Ticketsatisfaction/";
$obj=glpi_get($url);
$satisfactionid=$obj[0]['id'];
$comment="not too bad";
$satisfaction=3;
$url="/Ticketsatisfaction/".$satisfactionid."/";
$json=' {
                    "input":
                    {
                        "tickets_id":"'.$ticketid.'",
                        "comment":"' . $comment .'",
                        "satisfaction":"'.$satisfaction.'"
                      }
                }
        ';
$obj=glpi_put($url,$json);
print_r($obj);

je ne vois pas tellement de différence sauf que vous avez le sessionid à la fois dans l'url et dans le header,
je n'utilise que le header avec le apptoken dans le header pas dans l'url

j'ai essayé d'ajouter "id":860  dans le Json, ça ne change rien ça marche .


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 2020-01-24 09:43:14

ben2249
Member
From: FRANCE
Registered: 2019-12-03
Posts: 35

Re: [solved] Enquête de satisfaction

Merci pour votre aide. Ça avance.. J'ai retiré le sessionid de l'url et j'ai à présent une réponse :

array(2) {
  [0]=>
  string(17) "ERROR_GLPI_UPDATE"
  [1]=>
  NULL
}

Je m'interroge du coup sur mon user. En fait c'est mon compte, un compte de super-admin. C'est un compte ( comme tous les autres ) qui s'identifie sur LDAP. J'aurais pu me demander si c'était cela qui posait problème. Pourtant le initsession me renvoie bien un session_token, donc je ne comprends pas trop. Car j'ai été capable avec mon compte de procéder au vote via l'interface..

Offline

#4 2020-01-24 10:41:39

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

Re: [solved] Enquête de satisfaction

avez vous fait un getactiveprofile pour vérfier que vous avez le bon profil actif dans l'API ?

ceci dit même en tant que super admin on n'a pas accès à toutes les enquêtes


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 2020-01-24 10:46:14

ben2249
Member
From: FRANCE
Registered: 2019-12-03
Posts: 35

Re: [solved] Enquête de satisfaction

LaDenrée wrote:

avez vous fait un getactiveprofile pour vérfier que vous avez le bon profil actif dans l'API ?

Non, j'y vais de ce pas

LaDenrée wrote:

ceci dit même en tant que super admin on n'a pas accès à toutes les enquêtes

Oui mais je suis super admin et j'ai une enquête qui m'est adressée car je l'ai demandée à un autre technicien smile

Offline

#6 2020-01-24 11:02:51

ben2249
Member
From: FRANCE
Registered: 2019-12-03
Posts: 35

Re: [solved] Enquête de satisfaction

Alors, getActiveProfile ne m'a pas beaucoup aidé car mon compte et celui créé pour l'appli sont tous deux super-admin.
Par contre, j'ai utilisé getFullSession pour vérifier quel utilisateur était connecté. C'est bien mon compte perso, celui qui a les droits pour remplir l'enquête de satisfaction..

Bilan .. Je ne comprends pas... J'aurais espéré m'être planté à ce niveau.. Mauvais utilisateur -> pas les droits -> bah oui patate, connecte le bon .. Mais non

Offline

#7 2020-01-25 19:17:41

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

Re: [solved] Enquête de satisfaction

ça devient compliqué de vous aider car je ne reproduis pas votre comportement sur mon instance. (glpi9.4.5)


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

#8 2020-02-25 09:06:05

ben2249
Member
From: FRANCE
Registered: 2019-12-03
Posts: 35

Re: [solved] Enquête de satisfaction

Alors aussi étonnant que ça puisse paraître, je suis revenu sur le projet après une longue pause et .. ça a marché ... sans que je n'ai à faire quoi que ce soit de plus que ce qui n'avait déjà été fait...

Offline

Board footer

Powered by FluxBB