Описание протокола

Все POST и PATCH запросы должны содержать тело в формате JSON и иметь заголовок Content-Type: application/json.

Точно также, все ответы на любые запросы будут приходить в формате JSON.


Точка входа API
https://api.megacrm.ru/v1/

Если запрос был успешно выполнен, код статуса HTTP будет равен 200.
В случае ошибок код статуса HTTP может принимать перечисленные значения:

400

Запрос сформирован некорректно

403

Доступ запрещён. Некорректные параметры авторизации или ключ API был отключен

404

Запрошенный объект не найден

500

Ошибка на сервере API. Следует обратиться в техническую поддержку


 

Успешный ответ на запрос содержит параметр «result», в котором находятся запрошенные данные или результат запрошенного действия.

Если сервер API не смог выполнить запрос, ответ может содержать параметр «errors», который представляет из себя список объектов ошибок:

Название параметра

Тип

Описание

code

Натуральное число

Код ошибки

message

Строка

Сообщение с описанием ошибки

path

Строка

Путь к параметру запроса, в котором возникла ошибка. Может отсутствовать, если ошибка не связана с конкретным параметром

errors

Массив объектов ошибок

Подробности ошибки. Может отсутствовать, если ошибка не подразумевает наличие подробностей.


 

Возможные коды ошибок:

Код

Описание

101

Некорректный формат запроса

102

Доступ запрещён

200

Ошибка в некоторых параметрах запроса

201

Не указан обязательный параметр

202

Значение параметра имеет некорректное значение

203

Значение параметра превысило допустимую длину

204

Список содержит очень большое число элементов

205

Объект, указанный в параметре, не найден

301

Достигнуты тарифные лимиты


 

Авторизация

Для доступа к данными системы необходима авторизация. Для авторизации в каждый запрос нужно добавить два заголовка:

  • X-MegaCrm-ApiAccount — ID аккаунта MegaCRM.

  • X-MegaCrm-ApiSignature — Подпись.

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

  • Метод HTTP-запроса: GET, POST, PATCH.

  • Путь из URL запроса.
    Например, если URL запроса http://api.megacrm.ru/v1/clients, то путь будет иметь вид /v1/clients.

  • Query-параметры запроса.
    Например, если URL запроса http://api.megacrm.ru/v1/clients?page=2&category_id=100&doer_id=200, то строка query-параметров будет иметь вид page=2&category_id=100&doer_id=200.
    Экранирование значений в параметрах не требуется. Если в запросе нет query-параметров, указывается пустая строка.
    Если запросы POST и PATCH выполняются с query-параметрами, эти параметры также должны быть указаны.

  • Тело запроса.
    Если запрос не имеет тела или это запрос GET, указывается пустая строка.

  • Ключ API.
    Ключ можно получить в меню "Настройки / API" в интерфейсе MegaCRM.

Полученную строку нужно хэшировать алгоритмом SHA-256. В результате получится строка подписи, которую нужно передать в заголовке X-MegaCrm-ApiSignature.

 

Примеры вычисления подписи:

Запрос GET

  • Метод HTTP-запроса: GET.

  • Путь из URL запроса: /v1/clients.

  • Query-параметры запроса: page=2&category_id=100&query=Печкин.

  • Тело запроса: отсутствует.

  • Ключ API: abcdef0123456789.

Соединяем данные в строку, разделяя двоеточием:

GET:/v1/clients:page=2&category_id=100&query=Печкин::abcdef0123456789

Хэшируем эту строку алгоритмом SHA-256:

721f446dd0124ed88503d36bcb400ca184f4b1ef4c77906f1a33c73aef5d06d1

Запрос POST

  • Метод HTTP-запроса: POST.

  • Путь из URL запроса: /v1/clients.

  • Query-параметры запроса: отсутствуют.

  • Тело запроса: [{"name":"Client 1","type":0}].

  • Ключ API: abcdef0123456789.

Соединяем данные в строку, разделяя двоеточием:

POST:/v1/clients::[{"name":"Client 1","type":0}]:abcdef0123456789

Хэшируем эту строку алгоритмом SHA-256:

6ca9f902940dddd790e71f591f09c3ad62a4b6ceaa4ab36a6c8467d2bf238778

Была ли статья вам полезна? Была ли статья вам полезна?
Укажите, пожалуйста, почему?
Комментарий
Навигация