Я ищу ключевые слова XMLRPC, чтобы узнать список пользователей проекта BUGZILLA.
Вот мой код, логин работает нормально, и я могу использовать несколько ключевых слов, чтобы найти то, что мне нужно: Bug.search, Bug.fields.
public function loginBz($url,$login,$password,$getResult)
{
set_time_limit(0);
$URI = $url;
$xml_data = array(
'login' => $login,
'password' => $password,
'remember' => 1
);
$ch = curl_init();
$file_cookie = tempnam ("/tmp", "CURLCOOKIE");
$options = array(
//CURLOPT_VERBOSE => true,
CURLOPT_URL => $URI,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array( 'Content-Type: text/xml', 'charset=utf-8' )
);
curl_setopt($ch, CURLOPT_TIMEOUT,60);
curl_setopt_array($ch, $options);
$request = xmlrpc_encode_request("User.login", $xml_data);
// var_dump($request);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_COOKIEJAR, $file_cookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch); // Array( [id] => 1 ) for example
$response = xmlrpc_decode($server_output);
//print_r ($response);
if($getResult)
return $response;
else
return $ch;
}
public function getFieldsBz($product,$component,$ch){
$xml_data = array(
'product' => $product,
'component' => '$component'
);
$request = xmlrpc_encode_request("Bug.user", $xml_data); // create a request for filing bugs
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$server_output = curl_exec($ch); // Array( [id] => 1 ) for example
$response = xmlrpc_decode($server_output);
return $response;
}
Я искал в BugZilla API но не нашел то, что мне нужно: Список пользователей для продукта Bz.
Кто-нибудь знает, какое ключевое слово я должен использовать в xmlrpc_encode_request (ключевое слово, array_filter) ?
Это помогло бы 🙂
Во-первых, нет метода с именем Bug.user, смотрите https://www.bugzilla.org/docs/4.4/en/html/api/Bugzilla/WebService/Bug.html для полного списка.
Существует метод с именем User.get, см. https://www.bugzilla.org/docs/4.4/en/html/api/Bugzilla/WebService/User.html#get
Существует параметр под названием groups, который может делать то, что вы хотите, в зависимости от того, как вы настроили безопасность Bugzilla.
Ты можешь использовать https://xmlrpc.devzing.com/ для экспериментов или при обновлении до Bugzilla 5.x вы можете использовать новый REST API. https://www.bugzilla.org/docs/5.0/en/html/api/Bugzilla/WebService/Server/REST.html
Других решений пока нет …