Интеграция 1С с сервисом Callibri. Часть 2
Первую часть этой стати можно посмотреть здесь
В второй части части данной стати я хочу показать какие данные можно выгружать данные из коллтрекинг Callibri на базе методов API, которые система предоставляет нам, разработчикам 1С
Для интеграции 1С с внешними системами нужно создавать интерфейс пользователя и коннектор. Под понятием коннектора я подразумеваю программный модуль функций и процедур ,обеспечивающих выгрузки данных через http -запросы к серверу методов API внешней системы.
После выгрузки данных из внешней системы коллтрекинг Callibri , нужно эти данные хранить и обработать в 1С с помощью специального интерфейса или рабочего места пользователя.
Персональные реквизиты user_email и user_token приходят письмом по почте после регистрации в системе . Эти два параметра являются обязательными для доступа к методам API. Для http соединения используется следующий адрес сервера :
АдресСервера= "https://api.callibri.ru"
Все эти параметры : user_email , user_token и АдресСервера я храню в качестве констант в конфигурации 1С.
Для работы с http – запросом к серверу я создал процедуру общего назначения:
// +++ Работа с HTTP +++
Функция HTTPзапросGET(АдресСервера,АдресСкрипта) Экспорт
ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);
HTTP_Соединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl);
ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
Сообщить("Запрос к Callibri ..."); HTTP_Соединение.Получить(АдресСкрипта,ИмяФайлаОтвета);
Сообщить("Разбор ответа ...");
ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
ТекстОтвета = Новый ТекстовыйДокумент(); ТекстОтвета.Прочитать(ИмяФайлаОтвета,"utf-8");
ТекстВформатеJson =ТекстОтвета.ПолучитьТекст();
Возврат UnJSON(ТекстВформатеJson);
КонецФункции
После получения ответа сервера в формате JSON, я использую вспомогательную пользовательскую функцию unJson, которая обрабатывает ответ сервера и возвращает мне удобнее структурированное представление ответа сервера для его обработки. Данная функция не обязательна. Каждый разработчик обрабатывает ответ сервера как ему удобнее.
Запрос №1 Выгрузка списка доступных сайтов
Для выгрузки списка доступных сайтом используется метод /get_sites. Для этого я создал следующую функцию :
Функция СписокДоступныхСайтов() Экспорт
user_email = ПолучитьЗначениеКонстанты("User_email");
ИмяСервера = ПолучитьЗначениеКонстанты("ИмяСервера");
user_token = ПолучитьЗначениеКонстанты("user_token");
АдресСкрипта = "/get_sites?user_email" + user_email + "&user_token="+ user_token;
ответ = HTTPзапросGET(ИмяСервера,АдресСкрипта);
Возврат Ответ;
КонецФункции //
Данный метод возвращает массив sites с параметрами:
- site_id (идентификатор сайта в Callibri)
- sitename (название)
- domains (домены)
Эти выгруженные данные я записываю в специальном созданном регистры сведения
Запрос №2 Выгрузка списка лидов сайта
Для выгрузки лидов из Callibri используется метод API /site_get_statistics. Этот метод имеет дополнительные параметры :
- site_id – идентификатор сайта в Callibri, полученный из запроса №1
- ДатаНачала – начальная дата,
- ДатаОконачния – конечная дата (в формате dd.mm.yyyy) :
Пример вызова метода показано в следующем фрагменте:
Функция СписокЛидовсайта(site_id,ДатаНачала,ДатаОконачния) Экспорт
user_email = ПолучитьЗначениеКонстанты("User_email");
ИмяСервера = ПолучитьЗначениеКонстанты("ИмяСервера");
user_token = ПолучитьЗначениеКонстанты("user_token");
АдресСкрипта = "/site_get_statistics?user_email=" + user_email + "&user_token="+ user_token;
АдресСкрипта = АдресСкрипта+ "&site_id=" + site_id + "&date1=" + Формат(ДатаНачала, "ДФ=""dd.MM.yyyy""")+ "&date2="+ Формат(ДатаНачала, "ДФ=""dd.MM.yyyy""");
ответ = HTTPзапросGET(ИмяСервера,АдресСкрипта);
Возврат Ответ;
КонецФункции // Список лидов сайта()
Метод возвращает массив channels_statistics c параметрами:
- name_channel – название канала,
- number – номер.
- calls – массив звонков
- feedbacks – массив заявок
- chats – массив чатов
Все эти данные записываются в соответствующих регистрах сведений.
Запрос №3 . Выгрузка Историю чата
Для получения истории чата используется метод API /chat/history. Этот метод имеет дополнительный параметр : id – идентификатор чата в Callibri, который я получаю из массива chats в запросе №2
Функция ИсторияЧата(id)
user_email = ПолучитьЗначениеКонстанты("User_email");
ИмяСервера = ПолучитьЗначениеКонстанты("ИмяСервера");
user_token = ПолучитьЗначениеКонстанты("user_token");
АдресСкрипта = "/chat/history?user_email="+ user_email + "&user_token="+ user_token+ "&id={"+id+"}";
ответ = HTTPзапросGET(ИмяСервера,АдресСкрипта);
Возврат Ответ;
КонецФункции
Метод возвращает массив сообщений c параметрами:
- date – дата сообщения,
- name – имя пользователя,
- message – текст сообщения
Запрос №4 Выгрузка данных CRM Контакта
Для выгрузки этой информации используется метод /crm/contact. Эти данные можно выгружать по одному из следующих параметров: Этот метод имеет следующие дополнительные параметры:
- id_id – уникальный идентификатор лида
- site_id – идентификатор сайта в Callibri
- email – email контакта
В следующем примере я выгружаю данные CRM Контакта по параметру id_id – уникальный идентификатор лида
Функция ПолучениеCRMКонтактаПоИндентификатору (id_id) Экспорт
user_email = ПолучитьЗначениеКонстанты("User_email");
ИмяСервера = ПолучитьЗначениеКонстанты("ИмяСервера");
user_token = ПолучитьЗначениеКонстанты("user_token");
АдресСкрипта = "/crm/contact?user_email="+ user_email + "&user_token="+ user_token+ "&id={"+id_id+"}";
ответ = HTTPзапросGET(ИмяСервера,АдресСкрипта);
Возврат Ответ;
КонецФункции // ()
Метод выгружает следующие данные:
- name – имя контакта,
- family – фамилия контакта,
- town – город,
- company – компания,
- status – статус контакта
- phones – массив телефонов контакта,
- emails – массив E-mail контакта
Запрос №5 выгрузка информации о посетителе в Яндекс.Метрика
Для выгрузки информации посетителя в Яндекс.Метрика используется метод /metrika_visitor_info. В данный метод передается параметр ym_uid – индентификатор посетителя Callibri для Яндекс.Метрика:
Функция ИнформацияОпосетителеВЯндексМетрика(ym_uid)
user_email = ПолучитьЗначениеКонстанты("User_email");
ИмяСервера = ПолучитьЗначениеКонстанты("ИмяСервера"); //https://api.callibri.ru
user_token = ПолучитьЗначениеКонстанты("user_token");
АдресСкрипта = "/metrika_visitor_info?user_email="+ user_email + "&user_token="+ user_token+ "&id={"+ym_uid +"}";
ответ = HTTPзапросGET(ИмяСервера,АдресСкрипта);
Возврат Ответ;
КонецФункции // Информация о посетителе в Яндекс.Метрика()
Метод возвращает массив значений, с параметрами:
- dimetion_name – атрибут визита,
- dimetion_value – значение
См. также