top_ua
Головна сторінка

Підтримка24

Вебхуки та інтеграція з зовнішніми сервісами

Рейтинг:

Жодна сучасна компанія не існує у відриві від зовнішніх сервісів. Найбільш простий шлях створити зв'язок - це інтегрувати ваш портал. Але як це зробити? Безумовно, існує REST API, яка дозволяє додавати функціонал в хмарний Бітрікс24. Однак робота з REST - непросте завдання, що вимагає солідної кваліфікації від розробника.

Організуйте швидкий зв'язок вашого порталу із зовнішнім сервісом або окремо взятої формою без багатоповерхового програмування. Транслюйте звіти з вашої складської системи прямо в Живу стрічку за допомогою Вебхуків!

WebHooks - спрощений варіант rest-подій та rest-команд, що не вимагає написання програми.
На жаль, навіть надзвичайно талановита команда розробників Бітрікс24 поки неспроможна придумати спосіб, щоб програмувати могли і домогосподарки. Хоча вебхукі це простіший варіант, але довірити роботу з ними краще людині з певними знаннями.

Щоб створити вебхук, перейдіть на сторінку Застосунки > Вебхуки.

Снимок экрана 2017-07-21 в 13.39.51.png

Створення Вхідного вебхука

  1. Натисніть на кнопку Додати вебхук в правому верхньому кутку та оберіть Вхідний вебхук.
  2. У формі заповніть поля:
    • Назва та Опис - довільні дані.
    • Права доступу - зазначте, до яких модулів вебхук повинен мати доступ.
  3. Після збереження з'явиться код для авторизації вебхука:

    Увага! Даний код є конфіденційною інформацією. Його необхідно тримати в таємниці.
  4. Разом з кодом буде наведено зразок URL, який потрібно використовувати при відправці даних з сторонньої системи в Бітрікс24:
    https://********.bitrix24.ru/rest/1/83te1pjdphsa9u15/profile/
    где:
    • ******** - ім'я вашого порталу;
    • /rest/ - зазначення системі на те, що дана адреса відноситься до вебхуків;
    • /1/ - ідентифікатор користувача, який створив вебхук. Під правами цього користувача буде працювати цей вебхук.
    • /83te1pjdphsa9u15/ - секретний код;
    • /profile/ - метод REST, який ви бажаєте виконати, звертаючись до вебхуку. Розробник повинен сам підібрати метод з REST API в залежності від цілей створення вебхука.
  5. Звернутися з сторонньої системи за вказаною адресою на Бітрікс24.

    Розглянемо приклад такого звернення із завданням створити лід з форми. Треба сформувати URL в змінної $queryUrl, сформувати параметри для створення ліда в змінній $queryData та після підготовчих кроків як раз й звернутися до Бітрікс24 за допомогою функції curl_exec. Отриманий у вигляді JSON результат оброблений:

    Приклад коду звернення до Бітрікс24
    <? /** * Write data to log file. * * @param mixed $data * @param string $title * * @return bool */ function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND); return true; } $defaults = array('first_name' => '', 'last_name' => '', 'phone' => '', 'email' => ''); if (array_key_exists('saved', $_REQUEST)) { $defaults = $_REQUEST; writeToLog($_REQUEST, 'webform'); $queryUrl = 'https://restapi.bitrix24.ru/rest/1/31uhq2q855fk1foj/crm.lead.add.json'; $queryData = http_build_query(array( 'fields' => array( "TITLE" => $_REQUEST['first_name'].' '.$_REQUEST['last_name'], "NAME" => $_REQUEST['first_name'], "LAST_NAME" => $_REQUEST['last_name'], "STATUS_ID" => "NEW", "OPENED" => "Y", "ASSIGNED_BY_ID" => 1, "PHONE" => array(array("VALUE" => $_REQUEST['phone'], "VALUE_TYPE" => "WORK" )), "EMAIL" => array(array("VALUE" => $_REQUEST['email'], "VALUE_TYPE" => "WORK" )), ), 'params' => array("REGISTER_SONET_EVENT" => "Y") )); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryUrl, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result, 1); writeToLog($result, 'webform result'); if (array_key_exists('error', $result)) echo "Ошибка при сохранении лида: ".$result['error_description']."
    "; } ?> <form method="post" action=""> Имя: <input type="text" name="first_name" size="15" value="<?=$defaults['first_name']?>"><br/> Фамилия: <input type="text" name="last_name" size="15" value="<?=$defaults['last_name']?>"><br/> Телефон: <input type="phone" name="phone" value="<?=$defaults['phone']?>"<
    E-mail: <input type="email" name="email" value="<?=$defaults['email']?>"><br/> <input type="hidden" name="saved" value="yes"> <input type="submit" value="Отправить"> </form>
  6.  
    Увага! Приклад умовний, в режимі copy / paste використовувати не рекомендується.

Створення вихідного вебхука

  1. У випадаючому меню Додати вебхук оберіть Вихідний вебхук.
  2. У формі, що відкрилась заповніть поля:
    • Адреса обробника - сторінка на сторонньому ресурсі, куди буде звертатися вебхук.
    • Назва та Опис - довільні дані.
    • Тип події - потрібно вказати подію, на яку буде ініціалізуватися вебхук.
  3. Після збереження вебхука буде виведений Код авторизації у вигляді рядка з випадкових знаків. Цей код дозволить всередині обробника перевірити, чи дійсно обробник викликаний вашим Бітрікс24.
  4. На сторінці обробника розміщуємо код:
    Приклад коду обробника для події ONCRMDEALUPDATE
    <? print_r($_REQUEST); writeToLog($_REQUEST, 'incoming'); /** * Write data to log file. * * @param mixed $data * @param string $title * * @return bool */ function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND); return true; } 

    Для перевірки відкрийте будь-яку угоду на редагування та збережіть зміни, в логє відобразиться приблизно така історія:

    2017.01.17 12:58:29 incoming Array ( [event] => ONCRMDEALUPDATE [data] => Array ( [FIELDS] => Array ( [ID] => 662 ) ) [ts] => ххх [auth] => Array ( [domain] => ххх.bitrix24.ru [client_endpoint] => https://ххх.bitrix24.ru/rest/ [server_endpoint] => https://oauth.bitrix.info/rest/ [member_id] => ххх [application_token] => ххх ) )

Дякую, допомогло! Дякуємо :) Не допомогло Дуже шкода :(
Дізнайтесь, чому:
Це не те, що я шукаю
Дуже складно і незрозуміло

Допоможіть мені, будь ласка, поліпшити відповідь. Напишіть, якої інформації вам не вистачає, я намагатимусь її доповнити.

Дар'я Глущенко

Не знайшли відповідь на своє питання?

ПОСТАВТЕ ПИТАННЯ КОМАНДІ ПІДТРИМКИ24