Порядок интеграции мессенджера с системой

Общая схема регистрации транспортного модуля и каналов


          Модуль                  Пользователь                 retailCRM                 MessageGateway 
       --------------------------------------------------------------------------------------------------
            |                           |                          |                          |
1.          |                        Создание  ------------------> |                          |
            |                       API-ключа                      |                          |
            |                           |                          |                          |
            |                           |                          |                          |
2.          |                        Нажимает                      |                          |
            |                   кнопку «Подключить» -------------> |                          |
            |                    в карточке Модуля                 |                          |
            |                     в Маркетплейсе                   |                          |
            |                           |                    Перенаправление                  |
3.          | <-------------------------------------------    Пользователя                    |
            |                           |                  на форму настройки                 |
            |                           |                  и включения Модуля                 |
4.          | <------------------ Заполняет форму                  |                          |      
            |                           |                          |                          |
5.   Проверка API-ключа,                |                          |                          |
     прав для API-ключа  ----------------------------------------> |                          |
       и API-версии                     |                          |                          |
            |                           |                          |                          |
6.      Регистрация                     |                       Получение                     |
    транспортного модуля   --------------------------------->    токена   ------------------> |
            |                           |                          |                          |
            |                           |                    Возврат токена                   |
7.          | <---------------------------------------     и url для доступа к                |
            |                           |                     MessageGateway                  |
            |                           |                          |                          |
            |                           |                          |                          |
8.          |                    Заполняет форму с                 |                          |
            | <----------    настройками транспортных              |                          |
            |                        каналов                       |                          |
            |                           |                          |                          |
9.     Регистрация                      |                          |                          |
       транспортных  -----------------------------------------------------------------------> |
         каналов                        |                          |                          |
            |                           |                          |                          |
10.   Перенаправление                   |                          |                          |
       пользователя    ------------------------------------------> |                          |
        в аккаунт                       |                          |                          |
        retailCRM                       |                          |                          |
            |                           |                          |                          |
       --------------------------------------------------------------------------------------------------

Регистрация и настройка транспортного модуля

Регистрация нового транспортного модуля, а также изменение настроек существующего, производится с помощью метода 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"
      }
    }
  }
}

Редакция от 22.10.2018 19:33