Я пытаюсь сохранить и обновить кандидата в Bullhorn через REST API с PHP.
Я загрузил кандидата из BullHorn, и мои категории показаны следующим образом:
["categories"]=> object(stdClass)#632 (2) { ["total"]=> int(2) ["data"]=> array(0) { } } ["category"]=> object(stdClass)#654 (1) { ["id"]=> int(1123135) }
Я вижу, что мой id равен 1123135
. Но как я могу узнать, какие именно эти категории? Я выбрал две категории в BullHorn, и мой id теперь 1123135 …. У меня есть категории, такие как « Эксперт по электронному маркетингу, наука о данных, … ».
Но как я могу обновить эти категории на основе выбранных вами вариантов?
Категории в Bullhorn похожи на большинство других объектов. Так я это делаю
function BHGetCategoryData($entity_type, $entity_id) { $url = $_SESSION['restUrl'].'entity/'.$entity_type.'/'.$entity_id.'?BhRestToken='.$_SESSION['BhRestToken'].'&fields=id,name'; $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $data = curl_exec( $ch ); $obj = json_decode($data, true); curl_close( $ch ); return $obj; } function BHQueryCategory() { $url = $_SESSION["restUrl"]."/query/Category?where=enabled=true%20AND%20id>1&fields=id,name&orderBy=id&count=100&BhRestToken=".$_SESSION["BhRestToken"]; $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $data = curl_exec( $ch ); $obj = json_decode($data, true); return $obj; } // This dumps a list of categories var_dump(BHQueryCategory()); $entity_id= 1123135; $entity_type='Category'; // This will query one category for the name and id var_dump(BHGetCategoryData($entity_type, $entity_id));
Это, конечно, предполагает, что у вас есть ваш токен для отдыха и отдыха, и все, что позаботится об этом.
Из-за временных задержек при динамическом вытягивании всех ваших категорий я бы предположил, что вы загружаете полный список и заполняете его на стороне клиента, а не вызываете запрос каждый раз, когда хотите заполнить выпадающий список.
Также здесь запутанный бит. Существует «Категория», которая может быть записана как одно значение для записи кандидата. Существует также «Категории», которые являются отношениями «To-Many» и не могут быть написаны с основным объектом, его нужно вызывать отдельно. Ниже приведена функция, которая сделает это.
function BHCreateCandidateToMany($candid,$codegroup,$codestring) { $url = $_SESSION['restUrl'].'entity/Candidate/'.$candid.'/'.$codegroup.'/'.$codestring.'?BhRestToken='.$_SESSION['BhRestToken']; echo $url; $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_HTTPHEADER => Array("Content-Type: application/json"), CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_FOLLOWLOCATION => true, CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $data = curl_exec( $ch ); $obj = json_decode($data, true); curl_close( $ch ); return $obj; }
Документация находится здесь – http://developer.bullhorn.com/documentation/rest-api-1-1-update
(Пожалуйста, убирайте код по мере необходимости – просто грубый черновик, чтобы вы на своем пути)