Интеграция 1С с сервисом Callibri. Часть 2

Печать (Ctrl+P)

Первую часть этой стати можно посмотреть здесь

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

См. также

Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.