Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

REST API

Материал из Платформа Эра. Документации

Обзор API платформы можно найти на ресурсе vendor

Настройка канала интеграции

Как сделать первый API запрос

Создайте токен авторизации в Приложении Настройка — Каналы интеграции (/service/integration_points).

Укажите тип Subscriber, назначьте пользователя.

Используйте метод авторизации Bearer для выполнения запроса и поле локальный токен.

Настройка авторизации в Postman

Выполните POST запрос. Обратите внимание на кодировку пробела %20

Подробная документация REST API

Работа с колл-листом через REST API

Пример запроса Postman

Разберем примеры управления колл-листом на примерах. Создайте канал интеграции для REST API и укажите пользователя.

Получите всё содержимое (в формате JSON) класса GET запросом:

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents

Получите конкретную запись по id, например e480b13d-0191-d748-ae42-960002bdc633 при помощи GET-запроса:

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents/e480b13d-0191-d748-ae42-960002bdc633

Получите список записей класса при помощи фильтра. В примере вы получите список контрагентов, ФИО которых содержит подстроку «Бывал» (регистр важен):

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents?filter=["like",["property","fio"],["const","*Бывал*"]]

Получите список записей из колл-листа по id исходящей кампании

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents?filter=["==",["property","campaign_id"],["const","12d425a3-a69e-4b83-9527-2d23af2cecb6"]]

Для построения более сложных фильтров, сортировок и группировок используйте приложение Builder — Sandbox REST API.

Для добавления записи используйте POST запрос и передайте необходимую JSON структуру записи:

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents
 {
    "campaign_id": "c1692593-23e2-410a-bf8f-f3a2c27cd863",
    "ext": null,
    "fio": "Никита Леонидович Небывалый",
    "id": "e6d03318-ad64-4ba8-b8ee-dac91edee5ad",
    "increment": null,
    "notes": "Задолженность: 466681 руб.",
    "personalAgent_id": null,
    "phoneNumbers": [
      {
        "kind": "mobile",
        "phoneNumber": "89902355924"
      }
    ],
    "result": null,
    "scheduledNumber": null,
    "scheduledTime": null,
    "scheduledTimeMax": null,
    "state": null,
    "timeZone": null,
    "tryCount": null
  }

Обратите внимание, что даже указано поле id, платформа изменит значение на собственное.

Для полного изменения записи используйте запрос PUT

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents/e480b13d-0191-d748-ae42-960002bdc633 
{
    "campaign_id": "c1692593-23e2-410a-bf8f-f3a2c27cd863",
    "fio": "Никита Леонидович Бывалый",
    "id": "e480b13d-0191-d748-ae42-960002bdc633",
    "increment": 266,
    "notes": "Задолженность: 466681 руб.",
    "phoneNumbers": [
        {
            "kind": "mobile",
            "phoneNumber": "89902355924"
        }
    ]
}

Обратите внимание, что в этом запросе необходимо передать все поля. Поля, которые не будут указаны, будут иметь пустое значение.

Для частично изменения записи используйте запрос PATCH.

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents/e480b13d-0191-d748-ae42-960002bdc633
{    "fio": "Никита Леонидович Небывалый", }

Обратите внимание, что достаточно передать поля, необходимые к замене. Id записи изменить невозможно.

Для удаления записи с id = e480b13d-0191-d748-ae42-960002bdc633 используйте DELETE запрос:

https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents/e480b13d-0191-d748-ae42-960002bdc633

Полная документация для управления при помощи REST API.

Управление исходящей кампанией через REST API

Для запуска и остановки исходящей кампании воспользуйтесь POST запросом

[https://Шаблон:ERAURL/rest/v1/domain/nservices/callcenter.HolderService https://{ERAURL}/rest/v1/domain/nservices/callcenter.HolderService]

Для старта кампании

{  "method":"Campaign_start",  "request": {    "id": "12d425a3-a69e-4b83-9527-2d23af2cecb6"  } }

Для остановки кампании

{  "method":"Campaign_stop",  "request": {    "id": "12d425a3-a69e-4b83-9527-2d23af2cecb6"  } }

Пример на скриншоте.

Пример управления исходящей кампанией

Получить ID кампании вы можете через REST API запрос списка кампаний (/rest/v1/model/callcenter/outbound/Campaigns) или вывести колонку ИД в интерфейсе приложения «Исходящие кампании».

Как повторить любой клиентский функционал при помощи API

Повторим функцию отправки внутреннего сообщения в канал.

Сообщения WebSocket

Откройте приложения «Оператор», вкладку «Внутренние чаты». Нажмите F12 и обновите страницу. На вкладке Network найдите сервис ws с типом websocket. Очистите сообщения для удобства. Отправьте сообщение в канал. Найдите событие send, которое отвечает за отправку сообщения.

[
   "rest",
   {
      "operation":"replace",
      "classpath":"/rest/v1/model/platform/services/Invocations",
      "id":"92b4f40e-ddf8-4b4d-aae8-c9d6fb9765c0",
      "content":{
         "id":"92b4f40e-ddf8-4b4d-aae8-c9d6fb9765c0",
         "timeToLive":600,
         "from":"315e1a82-9076-4c8a-94ff-d857a7798aae",
         "to":"im.HolderService",
         "method":"InnerDialog_sendText",
         "request":{
            "id":"428a8cd0-94a9-48be-806e-ac2c7240f76a",
            "user_id":"0ce07813-018f-7be9-2969-960002bdc633",
            "parameters":{
               "text":"привет"
            }
         }
      },
      "qid":"be8e8315-5b51-49af-bd6b-3626cdac7cc3"
   }
]

Сообщение содержит все необходимые поля для повтора функционала как изнутри платформы, так и при помощи REST API. Существенные параметры:

  • "to":"im.HolderService" - микросервис платформы, ответственный за операцию,
  • "method":"InnerDialog_sendText" - метод микросервиса,
  • "id":"428a8cd0-94a9-48be-806e-ac2c7240f76a" - id чата или канала,
  • "user_id":"0ce07813-018f-7be9-2969-960002bdc633" - id пользователя платформы,
  • "parameters":{"text":"привет"} - передаваемый контент.

1. Способ. Вызов микросервиса из сценария

Воспользуйтесь компонентом SVC или IVR сценария “Вызов микросервиса продуктового слоя”:

Микросервис - im.HolderService,

Метод - InnerDialog_sendText,

Способ задания параметров - произвольный и передайте в качестве параметра текст:

{
            "id":"428a8cd0-94a9-48be-806e-ac2c7240f76a",
            "user_id":"0ce07813-018f-7be9-2969-960002bdc633",
            "parameters":{
               "text":"привет"}
}

2. Способ. Вызов при помощи REST API

Выполните POST запрос

[https://Шаблон:ERAURL/rest/v1/domain/nservices/im.HolderService https://{ERAURL}/rest/v1/domain/nservices/im.HolderService]

Передайте в качестве параметра JSON

{
         "method":"InnerDialog_sendText",
         "request":{
            "id":"428a8cd0-94a9-48be-806e-ac2c7240f76a",
            "user_id":"0ce07813-018f-7be9-2969-960002bdc633",
            "parameters":{
               "text":"привет"
            }
         }
}