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-06-07 11:39:50

Chouille75
Guest
Registered: 2008-05-30
Posts: 11

Script php - Ouverture/fermeture de ticket par Centreon

Bonjour à tous.

Je souhaite migrer notre GLPI v 0.85.4 vers v 9.4, or cela nécessite que nous mettions à jour un script que nous avons sur Centreon qui ouvre/ferme des tickets automatiquement.

Centreon tourne sous PHP 5.3 et le client API GLPI requiert une version plus récente de php. Je cherche donc à updater le script via des appels CURL en PHP.

J'arrive bien à me connecter à l'API, je récupère bien un token de session, et pour vérifier, je récupère les informations d'un compte utilisateur => C'est ok.

Ma problématique se porte sur la recherche de ticket, voici la portion de code concerné :

echo "\n\nSearch tickets not closed\n";
//Titre du ticket
$criteria[] = ['field' => 2, 'searchtype' => 'contains', 'value' => $BAMTag];     //$BAMTag = Titre du ticket - Spécifique à un hôte/Service Centreon
//Status not closed
$criteria[] = ['link'=>'AND', 'field' => 4, 'searchtype' => 'equals', 'value' => 2];
$url=$wsurl."Search/Ticket?Content-Type=%20application/json&app_token=".$wsapptoken."&session_token=".$session;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$TicketSearchCall = curl_exec($ch);
if (!curl_error($ch))
    {
    $TicketSearchCallResults = json_decode($TicketSearchCall);
        
    foreach($TicketSearchCallResults as $property => $value)
        {
        echo $property." : ".$value."\n";
        }
    }
    else
    {
    $error_msg = curl_error($ch);
    echo "Error :",$error_msg,"\n";
    }

Retour :

Search tickets not closed
0 : ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM
1 : resource not found or not an instance of CommonDBTM; view documentation in your browser at http://xxx.xxx.xxx.xxx/glpi-094/apirest.php/#ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM

Sauriez-vous me dire ce qui ne va pas dans ma requête ?

Question bonus : Existe-t-il une liste quelque part précisant le nom pour chaque field ID ?

'field' => 2 = Titre du ticket
...

Merci d'avance pour votre aide.

Cordialement.

Offline

#2 2019-06-07 14:04:39

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 4,728

Re: Script php - Ouverture/fermeture de ticket par Centreon

reponse bonus :

$url=$apiurl ."/listesearchoptions/Ticket";
renvoie la liste des champs de recherche du ticket avec les ID.
***************
il faut mettre les critères dans l'url :



$url=$wsurl."Search/Ticket?Content-Type=%20application/json&app_token=".$wsapptoken."&session_token=".$session&criteria[0][link]=AND&criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed
&criteria[1][link]=AND&criteria[1][field]=1&criteria[1][searchtype]=contains&criteria[1][value]=".$leTitreDeMonTicket


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.4(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1)hebergé sur serveur mutualisé.

Offline

#3 2019-06-07 16:28:36

Chouille75
Guest
Registered: 2008-05-30
Posts: 11

Re: Script php - Ouverture/fermeture de ticket par Centreon

Merci LaDenrée.

Je viens de tester directement dans le browser avec ceci :

.../Search/Ticket?Content-Type=application/json&app_token=ckczvhxEfm4oCyciGdpVVOLly3q5hcTLdTZ4vUit&session_token=a9vkc0um0lhp9f25h1lqtf3720&&criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed

Mais cela me renvoit toujours:

["ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM","resource not found or not an instance of CommonDBTM; view documentation in your browser at ]http://192.168.93.46/glpi-094/apirest.php/#ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM"]


Pour la question bonus, au top, cela va bien me servir.

Offline

#4 2019-06-07 16:30:49

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 4,728

Re: Script php - Ouverture/fermeture de ticket par Centreon

vous avez 2 &&  après le session token
&&criteria[0][field]=


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.4(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1)hebergé sur serveur mutualisé.

Offline

#5 2019-06-07 16:45:04

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 4,728

Re: Script php - Ouverture/fermeture de ticket par Centreon

pour mon appel curl je procède un peu différemment :

1)initsession-> je récupère mon session_token et je le mets dans un tableau $header (puis je le stocke en variable de session, mais vous n'êtes pas obligé)

$headers = array(
    'Content-Type: application/json',
    'App-Token: ' . $app_token,
    'Session-Token: '.$sess_token
    );

2)ensuite dans mon appel curl :

$url="/search/Ticket?criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed";
$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);

print_r($obj);


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.4(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1)hebergé sur serveur mutualisé.

Offline

#6 2019-06-07 16:48:16

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 4,728

Re: Script php - Ouverture/fermeture de ticket par Centreon

astuce pour définir les critères :  aller dans l'interface graphique glpi, filtrer avec les filtres classiques, copier l'url,  nettoyer un peu, ça vous donne l'url curl.


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.4(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1)hebergé sur serveur mutualisé.

Offline

#7 2019-06-07 17:22:27

Chouille75
Guest
Registered: 2008-05-30
Posts: 11

Re: Script php - Ouverture/fermeture de ticket par Centreon

J'ai corrigé, mais toujours pareil.

$url=$wsurl."Search/Ticket?criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed";
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	$TicketSearchCall = curl_exec($ch);
	if (!curl_error($ch))
		{
		$TicketSearchCallResults = json_decode($TicketSearchCall);
		//var_dump($TicketSearchCallResults);
		foreach($TicketSearchCallResults as $TicketSearchCallResult)
			{
			echo "Search results:\n";
			var_dump($TicketSearchCallResult);
			}
		
		}
		else
		{
		$error_msg = curl_error($ch);
		echo "Error :",$error_msg,"\n";
		}

Résultat :

Search tickets not closed
Search results:
string(39) "ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM"
Search results:
string(173) "resource not found or not an instance of CommonDBTM; view documentation in your browser at [url=http://xxx.xxx.xxx.xxx/glpi-094/apirest.php/#ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM]http://xxx.xxx.xxx.xxx/glpi-094/apirest.php/#ERROR_RESOURCE_NOT_FOUND_NOR_COMMONDBTM"[/url]

J'ai bien des tickets non clos - dans le doute, j'ai vérifié smile

Offline

#8 2019-06-17 21:13:57

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 4,728

Re: Script php - Ouverture/fermeture de ticket par Centreon

search avec un s MINUSCULE ....!

$url=$wsurl."search/Ticket?criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed";

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.4(behaviours2.2.1+fusioninventoty 9.4+1.1+applicatifs2.5.0+fields 1.9.1)hebergé sur serveur mutualisé.

Offline

#9 2019-06-29 13:49:28

Chouille75
Guest
Registered: 2008-05-30
Posts: 11

Re: Script php - Ouverture/fermeture de ticket par Centreon

Merci Helper, cela fonctionne mieux smile

Offline

Board footer

Powered by FluxBB