| Задача: создавать лид в Битрикс24 через rest api с заполненными полями, файлом при заполнении формы |
Полезная информация:
|
$(document).on('click','#sendProekt',function(e){
e.preventDefault();
if(CheckErrors('proekt')){ //проверка заполненности
//чтобы отправить файл, работаем через FormData
var formData = new FormData();
//заполняем поля
formData.append('name',$('#orgName').val());
formData.append('address',$('#orgAddress').val());
formData.append('phone',$('#orgPhone').val());
formData.append('email',$('#orgEmail').val());
formData.append('comment',$('#comment').val());
//прикрепляем файл (поле не множественное)
$.each($('#fileProekt')[0].files, function(i, file) {
formData.append('file_proekt', file);
});
$.ajax({
type: "POST",
url: "ajax.php",
data: formData,
processData: false,
contentType: false
})
.done(function( response ) {
console.log(response);
});
}
});
|
| где взять $queryUrl с кодом вебхука, написано в конце статьи |
//делает curl запросы к Битрикс24
function CurlBitrix24($method, $arData=array()){
$queryUrl = "https://nikaverro.bitrix24.ru/rest/[идентификатор_пользователя]/[код_вебхука]/".$method;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $queryUrl,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
));
if(!empty($arData)){
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arData));
}
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result,true);
}
$arFields = array(
"TITLE" => "Название лида",
"ADDRESS" => "Адрес",
"PHONE" => array(array("VALUE"=>$_REQUEST["phone"], "VALUE_TYPE"=>"WORK" )),
"EMAIL" => array(array("VALUE"=>$_REQUEST["email"], "VALUE_TYPE"=>"WORK" )),
"COMMENTS" => $_REQUEST["comment"],
"COMPANY_TITLE" => $_REQUEST["name"]
);
//добавляем поле типа файл (у меня немножественное)
if(!empty($_FILES['file_proekt'])){
$file = $_FILES['file_proekt'];
$fileData = file_get_contents($file['tmp_name']);
$arFields["UF_CRM_1605432620233"] = array('fileData'=>array(0=>$file['name'],1=>base64_encode($fileData)));
}
//выполняем запрос
$result = CurlBitrix24('crm.lead.add.json', array(
'fields' => $arFields,
'params' => array("REGISTER_SONET_EVENT" => "Y")
));
$leadId = (is_array($result) && !empty($result["result"])) ? $result["result"]: false;
echo json_encode($leadId);
die();
|
Как создать входящий вебхук
| разработчикам > готовые сценарии > другое |

- укажем название (чтобы потом было удобно найти в списке)
- нужно указать модули, к которым вебхук будет иметь доступ
| ВАЖНО! Без разницы какой метод указать в генераторе запросов, вебхук будет иметь доступ ко всем методам модуля Нам будет нужен адрес вебхука |

Как узнать ID пользовательского поля?
|