Bonjour à tous,
voilà deux jours que je suis coincé avec l'utilisation de l'api webservice de Bugzilla.

Je sais pas si je suis au bon endroit pour vous exposer ma problématique mais je vous l'explique quand même :

Le but est d'utiliser l'api webservice de Bugzilla pour créer un genre d'interface simplifié à des commerciaux dans mon entreprise.

Pour commencer j'ai essayer de récupérer les infos d'un utilisateur enregistré dans la base de bugzilla (requete GET) et cela marche très bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
	//########## GET METHOD
	$curl = curl_init();
	curl_setopt_array($curl, array(
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_URL => 'http://127.0.0.1/bugzilla/jsonrpc.cgi?method=User.get&params='.urlencode('[{"names":"haco28@gmail.com"}]'
	)));
	$resp = curl_exec($curl);
	print $resp;
	curl_close($curl);
?>
et j'ai ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
"error":null,"id":"http://127.0.0.1/bugzilla/","result":{"users":[{"real_name":"Alexis","name":"haco28@gmail.com","id":1}]}}
Ensuite j'ai voulu ajouter un bug avec la methode "Bug.create" (qui ne marche que avec une requete POST) avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<?php
	//########## POST METHOD
 
	$params = array(
	  "Bugzilla_login"=>"haco28@gmail.com",
	  "Bugzilla_password"=>"trp55puT",
	  "product"=>"TestProduct",
	  "component"=>"TestComponent",
	  "summary"=>"A brief description of the bug being filed.",
	  "version"=>"unspecified",
	  "description"=>"Description de test",
	  "prioriry"=>"normal",
	  "severity"=>"major"
	);
 
	$curl = curl_init();
	curl_setopt_array($curl, array(
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_URL => 'http://127.0.0.1/bugzilla/jsonrpc.cgi',
		CURLOPT_POST => 1,
		CURLOPT_POSTFIELDS => json_encode(array(
		    'method' => 'Bug.create',
		    'params' => $params
		)
	)));
	// Send the request & save response to $resp
	$resp = curl_exec($curl);
	print $resp;
	// Close request to clear up some resources
	curl_close($curl);
?>
et j'ai ce résultat :
Alors me suis c'est pas bon parce que si ma requête était passé j'aurais un id de bug en retour. Alors j'ai regardé ce qui se passe dans les logs d'apache et j'ai ce resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
127.0.0.1 - - [06/Mar/2013:11:24:21 +0100] "POST /bugzilla/jsonrpc.cgi HTTP/1.1" 403 8
403 Forbidden acces !
Mais alors pourquoi ? est-ce que j'utilise mal l'api ou le webservice ou alors est ce que ma conf d'apache ne me permet pas de faire des requetes post sur "jsonrpc.cgi" ?

Voici ma conf d'apache concernant le dossier de bugzilla :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
###BUGZILLA###
<Location "/bugzilla">
   Options +ExecCGI
   AddHandler cgi-script .cgi
   AllowOverride None
   Order allow,deny
   Allow from all
</Location>

Avez-vous une idée ?
Merci d'avance.