Быстрый старт
Мы обновили документацию, актуальная версия страницы доступна по ссылке: Быстрый старт
Для совершения запросов к REST API приложение должно быть создано и авторизовано.
В качестве примера работы с REST API приводится программа на языке Python, получающая список добавочных номеров клиента, а затем получающая состояние регистрации каждого добавочного номера. В данном примере приложение является доверенным (trusted), а значит авторизация пользователя в системе и подтверждение им доступа не требуется.
Запросы к REST API осуществляются через URL https://hostname/api/ver1.0/
Для разработчиков интеграций настоятельно рекомендуется ознакомится с страницами описанием практик по интеграции
Пример получения токена, информации об идентификаторе клиента, получение списка добавочных клиента и запроса статуса каждого добавочного номера пользователя:
#!/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. Код авторизации опущен, см. предыдущий пример.
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'])