Быстрый старт

Мы обновили документацию, актуальная версия страницы доступна по ссылке: Быстрый старт

Для совершения запросов к REST API приложение должно быть создано и авторизовано.

В качестве примера работы с REST API приводится программа на языке Python, получающая список добавочных номеров клиента, а затем получающая состояние регистрации каждого добавочного номера. В данном примере приложение является доверенным (trusted), а значит авторизация пользователя в системе и подтверждение им доступа не требуется.

Запросы к REST API осуществляются через URL https://hostname/api/ver1.0/


Для разработчиков интеграций настоятельно рекомендуется ознакомится с страницами описанием практик по интеграции


Пример получения токена, информации об идентификаторе клиента, получение списка добавочных клиента  и запроса статуса каждого добавочного номера пользователя:

extension_status.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import requests

# Установка параметров
API_HOST = "https://hostaname"
APP_ID = "SOME_APP_ID"
APP_SECRET = "SOME_APP_SECRET"
REDIRECT_URI = "https://apphost/authorized"

# Авторизация приложения
 
# Так как приложение доверенное, авторизация пользователя не требуется
body = {
    'grant_type': 'client_credentials',
    'redirect_uri': REDIRECT_URI,
    'client_id': APP_ID,
    'client_secret': APP_SECRET,
}

request_url = "{host}/oauth/token".format(host=API_HOST)
response = requests.post(request_url, data=body)
if response.status_code == 200:
    # Получение токена доступа
    access_token = response.json()['access_token']
elif response.status_code == 401:
    print 'Ошибка авторизации: {error}'.format(error=response.json()['error'])
    exit(1)
else:
    print 'Неизвестная ошибка'
    exit(2)

# Установка заголовков
headers = {
    'Content-type': 'application/json',
    'Authorization': 'Bearer {access_token}'.format(access_token=access_token)  # Заголовок авторизации
}


# Получение информации об идентификаторе клиента
request_url = "{host}/api/ver1.0/user/".format(host=API_HOST)
response = requests.get(request_url, headers=headers)
user_info = response.json()
print "Client ID: {client_id}".format(client_id=user_info['client_id'])

# Запрос к API, получение списка добавочных клиента
request_url = "{host}/api/ver1.0/client/@me/extension/".format(host=API_HOST)
response = requests.get(request_url, headers=headers)
extension_list = response.json()

# Запрос к API, получение статуса каждого добавочного номера пользователя
for extension in extension_list:
    request_url = "{host}/api/ver1.0/extension/{extension_id}/registration/".format(host=API_HOST, extension_id=extension['id'])
    response = requests.get(request_url, headers=headers)
    reg_status = response.json()
    # Если добавочный номер зарегистрирован, выводится информация о регистрации
    if reg_status['registered']:
        for registration in reg_status['registrations']:
            print 'Extension {extension_name} is registered from device {device}, from {real_address}'.format(extension_name=extension['name'], **registration)
    else:
        print 'Extension {extension_name} is not registered'.format(extension_name=extension['name'])


 

Далее приведен пример создания добавочного номера типа "телефонный терминал" и именем 347. Код авторизации опущен, см. предыдущий пример.

create_extension.py
import json
 
extension_data = {
    "status": "active",
    "type": "phone",
    "name": "347",
    "label": "Иванов Петр"
}
 
# @me используется пользователем типа "клиент" и будет транслировано системой в идентификатор клиента, с которым связан пользователь, делающий запрос
request_url = "{host}/api/ver1.0/client/@me/extension/".format(host=API_HOST)
response = requests.post(request_url, headers=headers, data=json.dumps(extension_data))
extension = response.json()
print "Extension {name} created, id = {extension_id}".format(name=extension['name'], extension_id=extension['id'])