Описание методов создания и управления пользователями в системе кол-трекинг.
Маршруты и аутентификация
Для обеспечение интеграции со внешними системами, необходимо настроить отправку запросов на адрес сервера кол-трекинг. Адрес сервера выдается по запросу технической командой кол-трекинг.
Тип данных | Способ получения |
URL | Выдается по запросу, технической службой кол-трекинг |
Для обеспечения аутентификации используется токен аутентификации и имя провайдера:
Параметр | Способ получения |
provider_auth_token | Выдается по запросу, технической службой кол-трекинг |
provider_name | Выдается по запросу, технической службой кол-трекинг |
Структура запросов
В работе с пользователями в API используются запросы шести типов:
- user_create - для добавления новых пользователей
- user_update - для редактирования су пользователей
- user_delete - для удаления пользователей
- user_login - для получения ссылки авторизации выбранного пользователя
- user_logout - для отмены сессии залогиненного ранее пользователя
- user_account_info - для получения данных о пользователях в базе Call Tracking
Данные передаются в формате JSON. Ниже представлено описание основных параметров, которые должны быть включены в запрос:
user_create
POST /api/v1/users
*Все параметры являются обязательными.
Пример запроса:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "external_uuid": "45655", "username": "ООО ПитерзГарден", "numbers_to_add": ["+375291010101","+375291010102","+375291010103"], "email": "example@mail.com" }
Пример ответа:
{ "status_code": 201, "status": "Created", "user_uid": "1f6974e2-da2c-789b-88dc-497581b33d81" }
В случае успеха, в ответе будет содержаться параметр user_uid - уникальный идентификатор в системе кол-трекинг для данного клиента. Он будет необходим для отправки всех последующих запросов, связанных с данным клиентом: события звонков, чтение, изменение и удаление данных клиента.
user_update
PATCH /api/v1/users/USER_UID
! Не все параметры являются обязательными.
* - обязательные параметры
** - необязательные параметры
Необязательные параметры могут быть пустыми или отсутствовать. При этом, если будут пустыми или отсутствовать все необязательные параметры - ответ будет содержать предупреждение:
{ "status code": 200 "status": "Ok", "message": "No parameters to update" }
Пример запроса на добавление номеров:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "username": "", "numbers_to_add": ["+375291010101","+375291010102","+375291010103"], "numbers_to_delete": [], "numbers_to_set_active": [], "numbers_to_set_inactive": [] }
Пример ответа:
{ "status_code": 200, "status": "OK" }
Пример запроса на удаление номеров:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "numbers_to_delete": ["+375291010101"] }
Пример ответа:
{ status_code: 200, status: "OK" }
Пример запроса на изменение имени:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "username": "Иван Петров" }
Пример ответа:
{ "status_code": 200, "status": "OK" }
Пример запроса на деактивацию номеров:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "numbers_to_set_active": ["+375291010102"] }
Пример ответа:
{ "status_code": 200, "status": "OK" }
Пример запроса на активацию номеров:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "numbers_to_set_active": ["+375291010102"] }
Пример ответа:
{ "status_code": 200, "status": "OK" }
В случае попытки деактивации номеров, которые уже были деактивированы, либо активации номеров, которые являются активными на данный момент, ответ будет содержать ошибку 400:
{ "status_code": 400, "status": "Fail", "errors": "Can't parse params" }
user_delete
DELETE /api/v1/users/USER_UID
*Все параметры являются обязательными.
Пример запроса:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123" }
Пример ответа:
{ "status_code": 200, "status": "OK" }
user_login
POST /api/v1/login
*Все параметры являются обязательными.
Пример запроса:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "user_uid": "sadlem123m593" }
Пример ответа:
{ "status_code": 200, "message": "OK", "link": "https://provider.call-tracking.by/users/sadlem123m593/?session=456d44v2216s" }
user_logout
POST /api/v1/logout
*Все параметры являются обязательными.
Пример запроса:
{ "provider_name": "Provider", "provider_auth_token": "123dflmsdvpm123", "user_uid": "sadlem123m593" }
Пример ответа:
{ "status_code": 200, "message": "OK" }
user_account_info
GET /api/v1/users/USER_UID?provider_name=PROVIDER_NAME&provider_auth_token=PROVIDER_AUTH_TOKEN
*Все параметры являются обязательными.
Пример запроса:
api/v1/users/fe434415-0bf1-4d89-bb6e-91ffb5ec1098?provider_name=NAME&provider_auth_token=TOKEN
Пример ответа:
{ "status_code": 200, "status": "OK", "external_uuid": "45655", "user_uid": "sadlem123m593", "username": "Иван Петров", "email": "example@mail.com", "active_numbers": ["+375291010102", "+375291010103"], "inactive_numbers": ["+375291010101"] }
Ограничения
В стандартной конфигурации на отправку событий распространяются следующие ограничения:
Период действия ограничения | Максимальное количество событий |
1 секунда | 100 |
1 сутки | 25000 |
Стандартные ограничения могут меняться по запросу провайдера при наличии технической возможности.
Возвращаемые значения
Ответ | Код | Описание |
{status: ok } | 200 | Событие обработано |
{status: fail, errors: "Missing require params [*]"} | 400 | Неверный запрос, отсутствует один из параметров |
{status: fail, errors: "Can’t parse params"} | 400 | Неверный тип данных, либо недопустимое значение в передаваемых параметрах |
{status: fail, errors: "Invalid uid"} | 401 | Неверный user_uid |
{status: fail, errors: "Invalid provider name"} | 401 | Неверный идентификатор провайдера |
{status: fail, errors: "Requests limit"} | 403 | Превышен лимит на отправку событий |
Перечень ответов и ошибок будет дополняться по мере доработки решения.