- Общая схема взаимодействия
- Регистрация и настройка транспортного модуля
- Получение информации о транспортном модуле
- Работа с Transport API
Общая схема регистрации транспортного модуля и каналов
Модуль Пользователь Система MessageGateway
--------------------------------------------------------------------------------------------------
| | | |
1. | Создание ------------------> | |
| API-ключа | |
| | | |
| | | |
2. | Нажимает | |
| кнопку «Подключить» -------------> | |
| в карточке Модуля | |
| в Маркетплейсе | |
| | Перенаправление |
3. | <------------------------------------------- Пользователя |
| | на форму настройки |
| | и включения Модуля |
4. | <------------------ Заполняет форму | |
| | | |
5. Проверка API-ключа, | | |
прав для API-ключа ----------------------------------------> | |
и API-версии | | |
| | | |
6. Регистрация | Получение |
транспортного модуля ---------------------------------> токена ------------------> |
| | | |
| | Возврат токена |
7. | <--------------------------------------- и url для доступа к |
| | MessageGateway |
| | | |
| | | |
8. | Заполняет форму с | |
| <---------- настройками транспортных | |
| каналов | |
| | | |
9. Регистрация | | |
транспортных -----------------------------------------------------------------------> |
каналов | | |
| | | |
10. Перенаправление | | |
пользователя ------------------------------------------> | |
в аккаунт | | |
системы | | |
| | | |
--------------------------------------------------------------------------------------------------
Регистрация и настройка транспортного модуля
Регистрация нового транспортного модуля, а также изменение настроек существующего, производится с помощью метода POST /api/v5/integration-modules/{code}/edit, в который обязательно нужно передать параметр integrationModule[integrations][mgTransport]
. Если модуль с кодом code
уже существует, метод меняет его настройки, в противном случае создается новый.
При регистрации необходимо указать название integrationModule[name]
, код integrationModule[code]
, базовый url integrationModule[baseUrl]
и уникальный код клиента integrationModule[clientId]
, который в последующем будет передавать MessageGateway в заголовке ClientId
для идентификации аккаунта системы.
В поле integrationModule[integrations][mgTransport][webhookUrl]
нужно указать адрес на который MessageGateway будет отсылать запросы транспортному модулю.
В случае успешной регистрации в ответе будет содержаться URL MessageGateway (info[mgTransport][endpointUrl]
) и ключ доступа к нему (info[mgTransport][token]
).
Дальнейшая настройка транспортного модуля и управление каналами должно выполняться в MessageGateway посредством Tranport API.
Для успешной регистрации транспортного модуля нужно, чтобы в аккаунте системы интеграция с MessageGateway была активна. При выключении интеграции все транспортные модули будут автоматически выключены в MessageGateway.
Пример запроса:
{
"code": "awesometransport-101",
"integrationCode": "awesometransport",
"active": true,
"name": "Awesome Transport",
"logo": "http://download.awesometransport.server.net/logos/robot.svg",
"clientId": "client-101",
"baseUrl": "https://awesometransport.server.net",
"accountUrl": "https://awesometransport.server.net/profile/client-101",
"actions": {
"activity": "/activity"
},
"integrations": {
"mgTransport": {
"webhookUrl": "https://awesometransport.server.net/wh/client-101"
}
}
}
Пример ответа:
{
"success": true,
"info": {
"mgTransport": {
"endpointUrl": "http://127.0.0.1:8080",
"token": "5bbdfd67ed17486e32363c95d462a39a138b215ccd9f87ef4c23e8f89f18e10a5"
}
}
}
Получение информации о транспортном модуле
Получение информации о транспортном модуле производится с помощью метода GET /api/v5/integration-modules/{code}.
Пример ответа:
{
"success": true,
"integrationModule": {
"code": "awesometransport-101",
"integrationCode": "awesometransport",
"active": true,
"freeze": false,
"name": "Awesome Transport",
"native": false,
"clientId": "client-101",
"baseUrl": "https://awesometransport.server.net",
"actions": {
"activity": "/activity"
},
"availableCountries": [],
"accountUrl": "https://awesometransport.server.net/profile/client-101",
"integrations": {
"mgTransport": {
"webhookUrl": "https://awesometransport.server.net/wh/client-101"
}
}
}
}
Работа с Transport API
API Endpoint: https://mg-s1.retailcrm.pro/api/transport/v1/
Авторизация производится с помощью токена, полученного при регистрации транспортного модуля.
Для каждого запроса необходимо передавать этот токен в заголовке
X-Transport-Token:X2EDxEta9U3lcsSV0dwdF38UvtSCxIuGh
Важно!
При обращении действует ограничение - 30 запросов в секунду с одного токена. При превышении лимитов по частоте запросов API возвращает ответ с HTTP-статусом
429 Too Many Requests
.
Если вы не сохранили токен при регистрации, то вы можете получить его вместе с информацией о транспортном модуле.
Ниже приведены ссылки на документацию для Transport API, а также на готовые API-клиенты для ряда языков.