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: 4,921

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...
*GLPI 9.1.6+fusion9.1+1.1+behaviours1.5.0+reports+fields+appliances+pdf+badges+formcreator2.5.2 PHP7.0 Mariadb10
*GLPI 9.4.5(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1) php7.2 mysql5.6 hebergé sur serveur mutualisé.

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: 4,921

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...
*GLPI 9.1.6+fusion9.1+1.1+behaviours1.5.0+reports+fields+appliances+pdf+badges+formcreator2.5.2 PHP7.0 Mariadb10
*GLPI 9.4.5(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1) php7.2 mysql5.6 hebergé sur serveur mutualisé.

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: 4,921

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...
*GLPI 9.1.6+fusion9.1+1.1+behaviours1.5.0+reports+fields+appliances+pdf+badges+formcreator2.5.2 PHP7.0 Mariadb10
*GLPI 9.4.5(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1) php7.2 mysql5.6 hebergé sur serveur mutualisé.

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