Описание методов создания и управления пользователями в системе кол-трекинг.
Маршруты и аутентификация
Для обеспечение интеграции со внешними системами, необходимо настроить отправку запросов на адрес сервера кол-трекинг. Адрес сервера выдается по запросу технической командой кол-трекинг.
| Тип данных | Способ получения |
| 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 | Превышен лимит на отправку событий |
Перечень ответов и ошибок будет дополняться по мере доработки решения.