Api

Интерфейс прикладного программирования

Получение токена для подписи запросов

Для начала работы на странице Профиль в разделе API Ключ необходимо задать ключ, и поставить галку у "Включить API". Теперь вы можете получить свой токен для подписывания запросов.

Далее выполняем GET запрос к https://api.pozvonim.com/v2u/auth/token в качестве параметров передаем uid и sign, где sign это MD5 хеш от Ключа API и UID, токен будет действителен 4 часа. Все дальнейшие запросы подписываем полученным токеном, и важно токен привязан по IP-адресу с которого его запросили.

Подпись запроса

В подпись запроса включаются ВСЕ параметры которые вы передаете за исключением sign

Подпись запроса строится следующим методом: MD5(TokenParam=Value&Param=Value&Param=Value), параметры должны быть отсортированы по алфавиту

Ваш полученный токен и конкатенация всех параметров отсортированных по названию параметра и вставлены следующим образом НазваниеПараметра=ЗначениеПараметра, без пробелов и от полученной строки берется MD5 хеш.

И полученный хеш передаем в параметре sign.

Пример PHP

$input = [
	'uid' => 1,
	'site_id' => 1,
	'widget_id' => 52
];
ksort($input);
$sign = $token . http_build_query($input)
$sign = md5($sign);

Пример JS

var data = [
	{param: 'uid', value: 1},
	{param: 'site_id', value: 1},
	{param: 'widget_id', value: 52}
];
function sortByKey(array, key) { return array.sort(function (a, b) { var x = a[key];var y = b[key]; return ((x < y) ? -1 : ((x > y) ? 1 : 0));});}
var dataSorted = sortByKey(data, 'param');
var sign = token;
dataSorted.forEach(function (entry) { sign += entry.param + '=' + entry.value + '&'; });
sign = sign.substring(1, sign.length-1);
//Вот тут нам понадобится воспользоваться какой-нибудь реализацией md5 для JS например этой
sign = md5(sign);

Обработка ошибок

Все отличные HTTP-Статусы от 200, 201, 202, 204 считаются ошибочными. В ответе будет передана структура такого формата:

{"error":{"code":"GEN-SERVER-ERROR","http_code":502,"message":"Oops something wrong!"}}

Форматы и типы данных

Некоторые нюансы относительно используемых нами правил.

DATE
2015-10-02 17:58:43 — Всегда и везде в формате DATETIME, часовой пояс применяется из настроек вашего профиля

BOOLEAN
TRUE, FALSE — Не используем только 0, 1

Структура URL

API представляет собой набор методов.

Обращение к методам API осуществляется путём отправки запроса методом POST на URL метода, который формируется следующим образом: https://api.pozvonim.com/v2u/<метод>

URL https://api.pozvonim.com/v2u/ является базовым и далее в документации не указывается, так же как в параметрах не указаны параметры uid и sign

Список групп и методов

  • Проекты

  • /sites  — Список проектов.
  • /sites  — Создание проекта.
  • /sites/:id  — Получение проекта
  • /sites/:id  — Обновление проекта
  • /sites/:id  — Удаление проекта
  • Прочее

  • /server/time/now  — Получение информации о времени на сервере
  • Звонки

  • /sites/:id/call  — Выполнение звонка
  • /sites/:id/call/delayed  — Заказ отложенного звонка
  • Виджет

  • /widget  — Список виджетов.
  • /widget/:id  — Получение настроек виджета
  • Звонки

  • /calls  — Список звонков
  • /calls/:id  — Получение звонка
  • Профиль

  • /profile  — Получение профиля
  • /profile  — Изменение профиля
  • Платежи

  • /payments/contributors/:id  — Перевод средств клиенту студии
  • Студии

  • /contributors  — Список клиентов студии
  • /contributors  — Создание клиента студии.
  • /contributors/:id  — Получение профиля клиента
  • Студии управление проектами

  • /contributors/sites  — Создание клиента студии и проекта.
  • /contributors/:id/sites  — Список проектов клиента.
  • /contributors/:id/sites  — Создание проекта клиента.
  • /contributors/:id/sites/:id  — Получение проекта
  • /contributors/:id/sites/:id  — Обновление проекта
  • /contributors/:id/sites/:id  — Удаление проекта
  • Студии просмотр звонков

  • /contributors/:id/calls  — Список звонков
  • /contributors/:id/calls/:id  — Получение звонка
  • Студии платежи

  • /contributors/:id/payments  — Перевод средств клиенту