Лицензия
API доступно только при наличии модуля "IQChannels – API. Search.C"
Описание
Search client API — это протокол поиска и первичной идентификации клиента, который использует сервер чата для поиска клиента во внешней системе (CRM/ДБО). Процесс идентификации может содержать несколько шагов, в рамках которых происходит проверка и запрос дополнительной информации.
Запрос
Все запросы отправляются с помощью HTTP POST запросов к REST-сервису.
Пример запроса
http://[host]:[port]/rest/chat/client/search/
Параметры POST запроса
Параметр | Тип | Обязательность | Описание |
---|---|---|---|
client | String | да | Один из идентификаторов клиента. Например: Номер телефона, email, наименование аккаунта клиента в социальной сети или crmId |
clientIdType | String | нет | Тип переданного идентификатора. Варианты: "email" - электронная почта, "phone" - номер телефона, "crmid" - id клиента учетной системе (CRM или ДБО), не указан - тип не указан (например при нескольких шагах). |
channelId | String | нет | Идентификатор канала, соответствующий короткому названию канала на английском языке (без пробелов, например, support) |
secretWord | String | нет | Кодовое слово (если установлено), СМС пароль, либо другая информация, которую запросила внешняя система |
stepId | String | нет | Идентификатор шага (процесса), который нужно передать во внешнюю систему (приходит от внешней системы на предыдущем шаге) |
Ответ
Response
В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json.
Поле | Тип | Обязательное | Комментарий |
---|---|---|---|
answerType | Long | да | Один из вариантов ответа от внешней системы. 1 - Запрос дополнительной информации. Например: Клиенту отправлен СМС с одноразовым паролем, необходимо указать значение. 2 - Идентификация прошла успешно, отправлен token клиента |
answerText | String | нет | Расшифровка сообщения из внешней системы, например: "На номеру 8 922 **** 3663 отправлен СМС-пароль для идентификации" |
secretWordValidator | String | нет | Регулярное выражение описывающее формат проверки ожидаемого в следующем шаге атрибута secretWord |
stepId | String | нет | Идентификатор шага (процесса), который нужно передать во внешнюю систему на следующем шаге |
token | String | нет | Токен клиента, который отправила внешняя система в результате успешной идентификации на answerStep = 2. Данный токен используется для авторизации и получения карточки клиента через протокол Auth API |
errorCode | String | нет | Код ошибки |
errorText | String | нет | Текст ошибки |
Примеры запросов и ответов
Поиск клиента
Отправляем запрос на поиск клиента. В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json:
POST http://127.0.0.1:8080/rest/chat/client/search/a57974242d0146c28056
Параметры запроса:
Параметр | Значение |
---|---|
client | +79221234567 |
Успешный ответ c требованием отправить одноразовый пароль:
{ "answerType": 1, "answerText": "Пожалуйста введите СМС пароль, который был отправлен на номер *4567", "stepId": "a2e4c2b5a9aaf34826ba" }
Идентификация клиента
Отправляем запрос на поиск клиента. В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json:
POST http://127.0.0.1:8080/rest/chat/client/search/a57974242d0146c28056
Параметры запроса:
Параметр | Значение |
---|---|
client | +79221234567 |
secretWord | 0987 |
stepId | a2e4c2b5a9aaf34826ba |
Успешный ответ с предоставлением токена клиента. Данный токен может быть использован для авторизации и получения карточки клиента через протокол Auth API:
{ "answerType": 2, "token": "ca57974242d0146c2805b" }
В качестве ответа может вернуться запрос дополнительной информации. Данный процесс может повторяться циклично до получения всей необходимой информации (например: 1 шаг - дата рождения, 2 шаг - кодовое слово, 3 шаг - СМС пароль). Для отслеживания шага можно использовать параметр stepId.
Ответ с ошибкой
В случае ошибки сервер возвращает статус не 200, а также может дополнительно возвращать описание ошибки в формате application/json в теле ответа:
{ "errorCode": "1001", "errorText": "Client not found", "stepId: "a2e4c2b5a9aaf34826ba" }
Изменения
Версия 1.1 (релиз еще не выпущен)
- В параметры запроса добавлен необязательный параметр clientIdType с вариантами ("email", "phone", "crmid").
- В параметры ответа добавлен необязательный параметр secretWordValidator с регулярным выражением для проверки secretWord