Перейти к содержимому страницы
Переключить меню
Переключить меню настроек
Переключить персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

Примеры API запросов

Материал из Платформа Эра. Документации
Версия от 16:38, 9 декабря 2024; Oagapov (обсуждение | вклад) (Новая страница: «== Как сделать первый API запрос == Создайте токен авторизации в Приложении Настройка — Каналы интеграции (/service/integration_points). Укажите тип Subscriber, назначьте пользователя. Используйте метод авторизации Bearer для выполнения запроса и поле локальный токен. Выпо...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

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

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

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

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

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

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

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

Разберем примеры управления колл-листом на примерах. Создайте канал интеграции для 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

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

Откройте приложения «Оператор», вкладку «Внутренние чаты». Нажмите 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":"привет"            }         } }