Описание API ЛК сервиса Team
Примеры даны с использованием Linux утилиты curl. Вы можете использовать любой аналогичный удобный вам инструмент.
Логин и получение токена
Выполните запрос с выводом результата:
curl -d "{\"login\":\"{YOUR_EMAIL}\",\"password\":\"{YOUR_PASS}\"}" -H "Content-Type: application/json" -H "Accept: application/json, text/plain, */*" -H "Referer: https://{YOUR_TENANT}.softphone.pro/login/" -k -X POST "https://{YOUR_TENANT}.softphone.pro/login/api/auth" -v
где:
Параметр | Описание | Пример |
---|---|---|
{YOUR_TENANT} | Адрес вашего ЛК в сервисе Team, строка после https:// до первой точки. | company |
{YOUR_EMAIL} | Почта администратора ЛК. | admin@company.ru |
{YOUR_PASS} | Пароль администратора ЛК. | password |
В результате запроса ищем строку начинающуюся с:
< Set-Cookie: jwt
Из этой строки берём токен (далее по тексту {YOUR_TOKEN}) - всё, что находится между знаком =
и символом ;
.
Создание пользователя
Выполните запрос:
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_TOKEN}" -d "{\"usesSoftphone\":true,\"name\":\"John\",\"surname\":\"Doe\",\"email\":\"user@company.ru\",\"password\":\"123456\",\"role\":\"EMPLOYEE\",\"groups\":[1,2],\"config\":\"{% include \\\"_Restrictions\\\" %}\n{% include \\\"_SipSettings\\\" %}\n{% include \\\"_Account1\\\" %}\n{% include \\\"_ACW\\\" %}\n{% include \\\"_Statuses\\\" %}\n{% include \\\"_Camera\\\" %}\n{% include \\\"_ScreenRecording\\\" %}\n{% include \\\"Default\\\" %}\"}" https://{YOUR_TENANT}.softphone.pro/api/settings/users/save
Параметры запроса:
Параметр | Описание | Пример |
---|---|---|
usesSoftphone | Использует ли пользователь Softphone.Pro. | true |
name | Имя пользователя (непустая строка, длиной до 256 символов). | John |
surname | Фамилия пользователя (непустая строка, длиной до 256 символов). | Doe |
Электронная почта пользователя. | user@company.ru | |
password | Пароль пользователя (непустая строка, длиной от 6 до 256 символов). | 123456 |
role | Роль пользователя. |
EMPLOYEE - оператор; MANAGER - руководитель; RESTRICTED_ADMIN - администратор (без управления подпиской). |
groups | ID групп, в которых пользователь будет состоять, один или несколько через запятую. Параметр задаётся в квадратных скобках.
ID групп можно получить в адресной строке браузера во время настройки группы. |
[1] - пользователь состоит в группе с ID 1; [2,4,7] - пользователь состоит в группах с ID 2, 4 и 7. |
manageGroups | ID групп, которыми пользователь будет управлять, если его роль MANAGER или RESTRICTED_ADMIN, один или несколько через запятую. Параметр задаётся в квадратных скобках. ID групп можно получить в адресной строке браузера во время настройки группы. |
[1] - пользователь управляет группой с ID 1; [2,4,7] - пользователь управляет группами с ID 2, 4 и 7. |
config | Конфигурация Softphone.Pro. Пример конфигурации вы можете найти в поле Конфигурационный файл на странице настроек пользователя сервиса Team. | {% include "_Restrictions" %}\n{% include "_SipSettings" %}\n{% include "_Account1" %}\n{% include "_ACW" %}\n{% include "_Statuses" %}\n{% include "_Camera" %}\n{% include "_ScreenRecording" %}\n{% include "Default" %} |
После удачного выполнения запроса на добавление вам вернётся ID созданного пользователя, вы можете сохранить его для того, чтобы использовать при удалении.
Добавление большого количества пользователей
Для автоматизации процесса добавления большого количества пользователей можно написать скрипт, который будет загружать данные о сотрудниках из csv таблицы и добавлять пользователей в личный кабинет. Ниже приведён пример такого скрипта на PowerShell.
Инструкция и образец скрипта тестировались на компьютере с ОС Windows 10. На компьютере должен быть разрешён запуск Powershell скриптов.
1. Скачайте архив с файлами скрипта и файлом данных: Add_Agents_to_Team.zip
2. Распакуйте архив в папку на вашем компьютере. В архиве три файла:
- add_agents.ps1 - PowerShell скрипт, который выполняет запросы к личному кабинету Team;
- add_agents.bat - исполняемый файл с реквизитами вашего личного кабинета, который нужно отредактировать, указав реквизиты вашего личного кабинета;
- agents.csv - файл с данными о пользователях, которые нужно добавить.
3. Откройте файл agents.csv. Данные в файле приведены для примера, заполните их своими значениями. Если параметр помечен как обязательный, соответствующий столбец в строке с данными пользователя не может быть пустым. Наличие строки с заголовками обязательно.
Описание столбцов:
Название столбца | Описание | Пример | Обязательный параметр |
---|---|---|---|
usesSP | Использует ли пользователь софтфон. Возможные значения: true/false. | true | да |
name | Имя пользователя, непустая строка, длиной до 256 символов. | John | да |
surname | Фамилия пользователя, непустая строка, длиной до 256 символов. | Doe | да |
Электронная почта пользователя. | user@company.ru | да | |
password | Пароль пользователя, непустая строка, длиной от 6 до 256 символов. | 123456 | да |
role | Роль пользователя. |
EMPLOYEE - оператор; MANAGER - руководитель; RESTRICTED_ADMIN - администратор (без управления подпиской). |
да |
groupsIn | ID групп, в которых пользователь будет состоять, один или несколько через запятую.
ID групп можно получить в адресной строке браузера во время настройки группы. |
1 - пользователь состоит в группе с ID 1; 2,4,7 - пользователь состоит в группах с ID 2, 4 и 7. |
да |
groupsMan | ID групп, которыми пользователь будет управлять, если его роль MANAGER или RESTRICTED_ADMIN, один или несколько через запятую. Для роли EMPLOYEE - пустое значение. ID групп можно получить в адресной строке браузера во время настройки группы. |
1 - пользователь управляет группой с ID 1; 2,4,7 - пользователь управляет группами с ID 2, 4 и 7. |
нет |
siplogin | Логин SIP учётной записи пользователя, строка длиной до 256 символов. | sip101 | нет |
sippassword | Пароль SIP учётной записи, строка длиной до 256 символов. | sippass123 | нет |
sipdisplayname | Отображаемое имя SIP учётной записи пользователя, строка длиной до 256 символов. | sip101 | нет |
sipauthname | Имя авторизации SIP учётной записи пользователя, строка длиной до 256 символов. | sip101 | нет |
ext | Добавочный номер SIP учётной записи пользователя на АТС, строка длиной до 256 символов. | 101 | нет |
4. Сохраните файл.
При работе с csv файлом в сторонних редакторах убедитесь, что в сохраняемом файле используется разделитель точка с запятой (;
) для отделения значений, а не запятая.
5. Откройте файл add_agents.bat в текстовом редакторе и укажите в параметрах token, dashboard и filepath настройки, необходимые для работы скрипта:
- token - укажите токен Администратора личного кабинета (он же {YOUR_TOKEN}), полученный по инструкции Логин и получение токена;
- dashboard - укажите адрес вашего личного кабинета Team в виде https://{YOUR_TENANT}.softphone.pro, где {YOUR_TENANT} это адрес вашего ЛК в сервисе Team, строка после https:// до первой точки;
- filepath - если файл agents.csv находится в той же папке, что и скрипты, оставьте значение .\agents.csv. Если вы хотите использовать файл в другой папке, укажите полный путь к CSV файлу.
Сохраните изменения в файле.
6. Запустите файл add_agents.bat двойным кликом и дождитесь выполнения скрипта.
Если пользователь из таблицы был добавлен успешно, вы увидите в открывшемся окне строку вида:
Successfully added user #1 from csv with ID 2
Номер после # в строке соответствует порядковому номеру строки с данными пользователя из csv файла (без учёта заголовков), номер после with ID - ID созданного пользователя, вы можете сохранить его для того, чтобы использовать при удалении.
Если пользователь не был добавлен, вы увидите строку вида:
Error adding user #2 from csv, got error 500 from Team Dashboard.
В данной строке указан порядковый номер пользователя из файла, которого не удалось добавить, и код ошибки, полученной из личного кабинета сервиса Team.
Удаление пользователя
Выполните запрос:
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_TOKEN}" -d "{USER_ID}" https://{YOUR_TENANT}.softphone.pro/api/settings/users/delete
Параметр | Описание | Пример |
---|---|---|
{USER_ID} | ID пользователей для удаления, один или несколько через запятую. Значение параметра задаётся в квадратных скобках. ID пользователя можно получить в ответе на запрос на добавление или в адресной строке браузера во время настройки пользователя. |
[1] - удалить пользователя с ID 1; [2,4,7] - удалить пользователей с ID 2, 4 и 7. |
Получение списка пользователей
Выполните запрос:
curl -H "Authorization: Bearer {YOUR_TOKEN}" -k -X GET "https://{YOUR_TENANT}.softphone.pro/api/settings/users?sortColumn=name&sortDirection=asc&pageSize=5&pageNumber=3&allUsers=true"
Параметры запроса:
Параметр | Описание | Пример |
---|---|---|
sortColumn |
Параметр, по которому отсортирован список пользователей. Возможные значения:
|
name |
sortDirection |
Направление сортировки списка пользователей по значению из параметра sortColumn .Возможные значения: asc (по возрастанию), desc (по убыванию). Значение по умолчанию: desc. |
asc |
pageSize |
Количество пользователей в выборке. Значение по умолчанию: 20. |
5 |
pageNumber |
Номер страницы, от 1. Значение по умолчанию: 1. |
3 |
allUsers |
Вернуть список всех пользователей. Возможные значения: true/false. Значение по умолчанию: false. Если указано значение true, запрос возвращает список всех пользователей, значения параметров pageSize и pageNumber игнорируются.
|
true |
В ответ на запрос возвращается JSON с данными о пользователях личного кабинета. Описание полей ответа:
Параметр | Описание |
---|---|
totalCount | Общее количество пользователей личного кабинета. |
users | Массив пользователей. |
users.id | ID пользователя. |
users.name | Имя пользователя. |
users.surname | Фамилия пользователя. |
users.email | Email пользователя. |
users.state |
Статус пользователя. Возможные значения:
|
users.role |
Роль пользователя. Возможные значения:
|
users.groups | Массив названий групп, в которых состоит пользователь. |
users.sfversion | Версия софтфона, с которой сотрудник подключался в последний раз. Может быть пустым, если пользователь не подключался из софтфона или не использует его. |
Получение истории статусов операторов
Выполните запрос:
curl -H "Authorization: Bearer {YOUR_TOKEN}" -k -X GET "https://{YOUR_TENANT}.softphone.pro/api/reports/agents/worktime/raw?from=2019-01-01T00:00:00&to=2020-01-02T00:00:00&format=csv"
Параметры запроса:
Параметр | Описание | Пример |
---|---|---|
from | Дата и время в формате UTC, с которого надо получить данные. | 2019-01-01T00:00:00 |
to | Дата и время в формате UTC, по которое надо получить данные. | 2019-12-31T23:59:59 |
format | Формат полученных данных. Необязательный параметр. | csv или tsv |
Получение истории звонков
Выполните запрос:
curl -H "Authorization: Bearer {YOUR_TOKEN}" -k -X GET "https://{YOUR_TENANT}.softphone.pro/api/history/calls/export?dateFrom=2021-10-13T00:00:00%2B05:00&dateTo=2021-10-14T00:00:00%2B05:00&localTimeZoneOffset=%2B300&typeFile=csv"
Параметры запроса:
Параметр | Описание | Пример |
---|---|---|
dateFrom | Дата и время в формате UTC, с которого надо получить историю. Положительный сдвиг задаётся знаком %2B (+ в кодировке), отрицательный - знаком - . |
2021-10-13T00:00:00%2B05:00 |
dateTo | Дата и время в формате UTC, по которое надо получить историю. Положительный сдвиг задаётся знаком %2B (+ в кодировке), отрицательный - знаком - . |
2021-10-14T00:00:00%2B05:00 |
localTimeZoneOffset | Сдвиг времени от нулевого часового пояса в минутах. Положительный сдвиг задаётся знаком %2B (+ в кодировке), отрицательный - знаком - . |
%2B180 или -300 |
lang | Язык экспортируемого файла. По умолчанию английский (en). Необязательный параметр. | ru или en |
typeFile | Формат полученных данных. По умолчанию xlsx. Необязательный параметр. | xlsx или csv |
Загрузка информации с АТС Asterisk в личный кабинет сервиса Team
Если вам нужно загрузить информацию с вашей АТС Asterisk в личный кабинет сервиса Team, выполните запрос:
curl --request POST https://{YOUR_TENANT}.softphone.pro/api/reports/asterisk/upload -H 'Authorization: Bearer {YOUR_TOKEN} ' --form 'logs=@"{YOUR_PATH_TO_FILE_QUEUELOG}"'
Параметры запроса:
Параметр | Описание | Пример |
---|---|---|
{YOUR_PATH_TO_FILE_QUEUELOG} | Путь до файла queue_log на сервере, с которого производится запрос. | /var/log/asterisk/queueLog |
Результатом успешного запроса будет количество звонков, загруженных в личный кабинет. Если вы получите какую-либо ошибку, вы можете очистить все ранее загруженные данные и повторить загрузку файла.
Чтобы удалить ранее загруженные в ЛК данные об очередях, выполните следующий запрос:
curl --request POST https://{YOUR_TENANT}.softphone.pro/api/reports/asterisk/clear -H 'Authorization: Bearer {YOUR_TOKEN}'