2015-08-20 5 views
1

Я ищу ключевые слова XMLRPC, чтобы узнать список пользователей проекта BUGZILLA.Как получить список пользователей проекта bugzilla с использованием XMLRPC после входа в систему

Вот мой код, логин работает отлично, и я могу использовать несколько ключевых слов, чтобы узнать, что мне нужно: 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 (keyword, array_filter)?

Это помогло :)

ответ

0

Сначала не метод называется 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 Существует параметр, называемый группами, который может делать то, что вы хотите, в зависимости от того, как вы настраиваете безопасность 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