Дополнительные действия
Oagapov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Файл:Настройка канала интеграции.png|мини|Настройка канала интеграции]] | Обзор API платформы можно найти на [https://vendor.era-platform.ru/docs/era/latest/api/index.html ресурсе vendor][[Файл:Настройка канала интеграции.png|мини|Настройка канала интеграции]] | ||
== Как сделать первый API запрос == | == Как сделать первый API запрос == |
Текущая версия от 10:51, 6 января 2025
Обзор API платформы можно найти на ресурсе vendor
Как сделать первый 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
Для запуска и остановки исходящей кампании воспользуйтесь 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":"привет" } } }