Примеры использования API сервиса

Добавление и настройка системы

Во всех примерах используются только POST-запросы. Конечный результат отправки уведомления можно будет увидеть в заглушках. Каждый тип уведомления имеет свою заглушку.

Добавление системы

Адрес для отправки запроса - /v1/systems.
Тело запроса
{
    "systemName" : "systemName",
    "systemDescription" : "systemDescription"
}

Добавление системной настройки для email-сообщений

Выполняется после того, как обработчик email-proxy был запущен и зарегистрировал схему.
Адрес для отправки запроса - /v1/systems/{systemId}/notificationTypes.
Тело запроса
{
    "code" : "email",
    "settings": {
        "protocol": "smtp",
        "host": "localhost",
        "port": 1025,
        "username": "red",
        "password": "password",
        "sslEnabled": false,
        "startTlsEnabled": true,
        "timeOutSeconds": 5,
        "skipCertificateCheck": true,
        "defaultFrom": "default@email.com",
        "defaultDisplayName": "Display Name"
    }
}

Добавление системной настройки для push-уведомлений

Выполняется после того, как обработчик push-proxy был запущен и зарегистрировал схему.
Адрес для отправки запроса - /v1/systems/{systemId}/notificationTypes.
Тело запроса
{
    "code" : "push",
    "settings": {
        "connectionTimeoutSeconds": 5,
        "sdkKey": {
            "type": "service_account",
            "project_id": "fcm-iddqd-2",
            "private_key_id": "a03705266ccc3b591dea022a8598c6cc35a23b3d",
            "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQC0WlgzuxPncZYd\n2yXcWzgkGiTUuyjo+tlAnV8l0ZyilknTnQitvm9n3im9VX9hvuCTicOySxzIdtcZ\nDv1a6ZwJtct9YxqZnl7JTeYzqpDbYER0qa0vUdd30xPkhdGtKKSgBJ7Q/B0zwME5\ntOZT23oPXvM5mIqxb/pAeRosU4LGOtqbkjhpotEfC05HzQ45wbsvp7XOcJsSmhuS\n69zA1yEfXpLyXIjNntI9/bZFPk9BLtIOVHotCHeO7K5qGcFZxtrF5VG++/GabHrB\nRhlEVUd0X0kjv3Dx9vVJ0KsyvbYHI2sa9PJtH1fbiVG0cyYMXS6cKOchIpUni9ZJ\nbw0YbnHhAgMBAAECgf8GNGDy7LEVLGGLKLmiwnsxPyS0oWL3q8yeyss16FuBWM7M\n3oFAzEN+8ifzfYMWoN7XgdaQyvG31jlgyc7Z6r0cuZ1IhZdmV0j8Hs8V1KD6xuGY\n2gaUJwFSg0dIJYNUUUKwxnfq0uqmbGS29xDlK+qrxNq9MxW8rSO4YuYb6j4lqa6E\nBQShfhdR4+wrqFe892bUDGQKNL1MIkAnrPqUnxFYR7FjwMkPozTDEg2SR+F+i27b\nFCRM1fxvG03VInpm5fQZtsE89S/k6fY28E3k0nS8wZ2h6+GigXvsRaK7dl8smerq\nXQpmvyBceByKT9MOBxUq0lZLTbJ1251Q9N6zq4ECgYEA6hCteBI9aphSitNUug/v\nwGPAbet91RbrIdSwBufbff89pzOeqBZrg/JT7gmU/13Ee0dfKN7cVl6WSIXXE4IY\nHjKhmsu4hEO2bTtZ2y9sQd/G5NSC+vBxJzXtNyo4CN62k3XYFshh8iBaX6W6u5p8\n9bHp6TsJMh2+hGQmHHaP6IECgYEAxUEWZY5BoCYEaS6UkJL6UlfaIBzfyelcuFiZ\n8c68REBeWEC21evy0+YC5hfxPihAFDDt0BbCuEmhLb89b5NlZxLy6dvkyPacE0hF\nmmiB0wZyH8yE6d/89bv2Lctdt9uN6AGUqiDffBDf1sE0JbkIZHiNmZ1AmM9Wf0Yg\njHbS2WECgYBk7UoPYzYOV54H9HYtQJ/twlWAUDHTB23eCZrZb3KKktuf1DdOXVSA\n8aXVF1ajAmiti6nxsp8psuF0ZhnGdKs3ojdiywNGLPhlg1kMlRdGFFrr4uKTl8gC\n01L1HYRJ9tadIQxLTp5FTEQLyCeLq2LEgrHM+sLNVFwJNDHmxgzpgQKBgFZax0ZQ\nf/RvkFDH3qxoXAQ+h7S1T1eivT/LMiIFQrCSiXsTYbfHYvhXYv9+jdOLZXoxbXtC\n654oRdK0PV4iZis4xXWSGdfM9skOQ8J0bBmJYd7/91Q4BhNCZWTo+i9qg/aE8qOE\nXrJ+5K+sx3qYRc9OY5dTm5sKcjCn78nunyIhAoGBAOHL1qW6G+zkjKazpgck4L2Q\njYtm+7QJzsK7Bz6CUJDkHRnBD1HAYPIi0eBFaBl2F/bHmnXWQ5df7ZjS5wnRdKSH\nBqz8AVvlE99MGofXXSxikOeABUEDts6lLIFkmwukIeOlWtloWrI8llj3aTq1KVRM\n2upGenQIE8GRP0ETzk0v\n-----END PRIVATE KEY-----\n",
            "client_email": "firebase-adminsdk-cuizl@fcm-iddqd-2.iam.gserviceaccount.com",
            "client_id": "100006788729945453618",
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://oauth2.googleapis.com/token",
            "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
            "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-cuizl%40fcm-iddqd-2.iam.gserviceaccount.com"
        }
    }
}

Добавление системной настройки для gaps-уведомлений

Выполняется после того, как обработчик gaps-proxy был запущен и зарегистрировал схему.
Адрес отправки запроса - /v1/systems/{systemId}/notificationTypes.
Тело запроса
{
    "code": "GAPS",
    "settings": {
        "countReNotice": 3,
        "periodReNotice": "P3DT10H30M",
        "periodRegistryCollect": "PT24H",
        "periodTimeRegistryCollectValid": "P30DT24H",
        "readingNotification": true,
        "dynamicRouting": [
            "SVDEV"
        ],
        "registryRouting": [
            {
                "dynamicRouting": [
                    "PROD"
                ],
                "useGeneralRouting": false
            },
            {
                "dynamicRouting": [],
                "useGeneralRouting": true
            }
        ]
    }
}

Добавление пользовательских параметров и дополнительных данных

Резолвинг шаблонов необходим для автоматической подстановки данных пользователя в переменные шаблона. Для этого в сервисе nc_user в таблице userParams хранятся все возможные параметры пользователей, а в таблице extraUserData - значения нужных параметров для пользователя.
При отправке уведомления по шаблону происходит проверка параметров содержания:
  • если параметр найден в таблице параметров, то подставляется значение этого параметра из extraUserData пользователя;
  • если параметр не найден в таблице параметров, то он должен быть заполнен из данных, пришедших в уведомлении.

Создание параметра

Адрес для отправки запроса - /v2/user-params.
Тело запроса
{
  "paramId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "paramName": "age",
  "paramDescription": "Возраст",
  "type": "INTEGER"
}

Создание дополнительных данных пользователя

Предусловия:
  • пользовательский параметр создан;
  • пользователь должен быть создан, профиль пользователя должен быть создан, настройки пользователя должны быть созданы.
Адрес для отправки запроса - /v2/user/{userId}/user-params/data.
Тело запроса
[
  {
    "profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "paramName": "age",
    "value": "25"
  }
]

Отправка уведомления по шаблону с использованием данных пользователя

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки уведомлений;
  • пользовательские параметры созданы;
  • шаблон создан;
  • пользователь должен быть создан, профиль пользователя должен быть создан, настройки пользователя должны быть созданы, дополнительные данные пользователя должны быть заполнены.
Адрес для отправки запроса - /v1/systems/{systemId}/users.
Тело запроса
[
  {
    "to": [
      "to_user@gmail.com"
    ],
    "from": "from@gmail.com",
    "displayName": "filled display name",
    "subject": "Subject of the email",
    "importance": "HIGH",
    "contentType": "HTML",
    "content": "This is content of the email",
    "flag": "transactional"
  }
]

Балансировка уведомлений

Балансировка уведомлений необходима для отправки уведомлений с разными приоритетами.

Создание признака уведомлений

Предусловие: система должна быть создана.
Адрес для отправки запроса - /v1/systems/{systemId}/flags.
Тело запроса
{
  "name": "transaction",
  "description": "Транзакционное, высокий приоритет",
  "priority": "HIGH"
}

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

Предусловия:
  • система должна быть создана и настроена для отправки уведомлений;
  • признак должен быть создан.
Адрес для отправки запроса - /v1/systems/{systemId}/email.
Тело запроса
[
  {
    "to": [
      "to_user@gmail.com"
    ],
    "from": "from@gmail.com",
    "displayName": "filled display name",
    "subject": "Subject of the email",
    "importance": "HIGH",
    "contentType": "HTML",
    "content": "This is content of the email",
    "flag": "transactional"
  }
]

Отправка email-уведомлений

Во всех примерах используются только POST-запросы. Конечный результат отправки уведомления можно будет увидеть в заглушках. Каждый тип уведомления имеет свою заглушку.
Email-уведомления - уведомления, отправляемые на почтовый адрес получателя.

Отправка email-сообщения общего типа

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки email-уведомлений.
Адрес для отправки запроса - /v1/systems/{systemId}/email.
Тело запроса
[
  {
    "to": [
      "string@mail.ru"
    ],
    "cc": [
      "string@mail.ru"
    ],
    "bcc": [
      "string@mail.ru"
    ],
    "from": "string@gmail.com",
    "displayName": "string",
    "subject": "string",
    "importance": "HIGH",
    "contentType": "HTML",
    "content": "string",
    "reportForm": {
      "reportId": "string",
      "data": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    },
    "sendAfter": "2021-11-09T07:05:27.459Z",
    "sendSeparate": true
  }
]
Уведомление должно содержать content или reportForm (поля взаимоисключающие).

Отправка email-сообщения с пользовательскими данными

Добавление настроек пользователя для отправки email-сообщения

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки email-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан.
Для отправки уведомления пользователю необходимо задать настройки по адресу /v2/systems/{systemId}/user-settings/user/{userId}/type/email?profileId=userProfile.
Тело запроса
{
    "to": ["example@mail.com"],
    "cc": ["example@mail.com"],
    "bcc": ["example@mail.com"],
    "enabled": {
        "value": true //при false отправка сообщения для типа уведомления будет запрещена
    }
}

Отправка email-сообщения

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки email-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан, настройки пользователя должны быть созданы.
Адрес для отправки запроса - /v1/systems/{systemId}/users.
Тело запроса
{
  "users": [
    {
      "profileId": "userProfile",
      "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  ],
  "notifications": [
    {
      "type": "email",
      "title": "myTitle",
      "content": "myContent",
      "reportForm": {
        "reportId": "string",
        "data": {
          "content": "contentReportFrom"
        }
      },
      "extraNotificationData": {
        "from": "test@mail.ru",
        "displayName": "string",
        "importance": "high",
        "contentType": "HTML"
    },
      "sendAfter": "2021-12-01T09:15:24.151Z"
    }
  ]
}
Уведомление должно содержать content или reportForm (поля взаимоисключающие).

Отправка gaps-уведомлений

Во всех примерах используются только POST-запросы. Конечный результат отправки уведомления можно будет увидеть в заглушках. Каждый тип уведомления имеет свою заглушку.
Gaps-уведомление - уведомление, отправляемое по каналу ГЭПС (Государственная электронная почтовая система) пользователю ЕПГУ (Госуслуги) с помощью СМЭВ (cистема межведомственного электронного взаимодействия).

Отправка gaps-уведомления общего типа

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки gaps-уведомлений.
Адрес отправки запроса - /v1/systems/{systemId}/gaps.
Тело запроса
[
  {
    "from": "string",
    "sendTime": "2022-03-05T07:56:03.942Z",
    "sendAfter": "2022-03-05T07:56:03.942Z",
    "gapsRequest": {
      "attachmentsInfo": [
        {
          "fileName": "string",
          "mimeType": "string",
          "recordId": 0,
          "sigName": "string",
          "uuid": "string"
        }
      ],
      "keyAlias": "string",
      "messageContent": {
        "generalData": {
          "foivId": "string",
          "messageType": "string",
          "reNotice": {
            "countReNotice": 3,
            "periodReNotice": "P3DT10H30M"
          },
          "settings": {
            "periodRegistryCollect": "PT24H",
            "periodTimeRegistryCollectValid": "P30DT24H",
            "readingNotification": true
          }
        },
        "records": [
          {
            "recipientType": "RF_PASSPORT",
            "content": {
              "personDocument": {
                "docNumber": "string",
                "docSeries": "string"
              },
              "param": [
                {
                  "name": "string",
                  "value": "string"
                }
              ]
            },
            "recordId": 1
          },
          {
            "recipientType": "IP_INN",
            "content": {
              "inn": {
                "inn" : "773421989212"
              },
              "param": [
                {
                  "name": "string",
                  "value": "string"
                }
              ]
            },
            "recordId": 4
          }
        ]
      }
    },
    "useSystemSettings": false
  }
]

Отправка gaps-уведомления с пользовательскими данными

Добавление настроек пользователя для отправки gaps-уведомления

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки gaps-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан.
Для отправки уведомления пользователю необходимо задать настройки по адресу /v1/systems/{systemId}/user-settings/user/{userId}/type/gaps?profileId=userProfile.
Тело запроса
{
    "enabled": {
        "value": true //при false отправка сообщения для типа уведомления будет запрещена
    }
}

Отправка gaps-уведомления

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки push-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан, настройки пользователя должны быть созданы.
Адрес отправки запроса - /v1/systems/{systemId}/users.
Тело запроса
{
    "users": [
        {
            "profileId": "userProfile",
            "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
    ],
    "notifications": [
        {
            "type": "gaps",
            "extraNotificationData": {
                "from": "string",
                "sendTime": "2022-03-05T07:56:03.942Z",
                "gapsRequest": {
                    "attachmentsInfo": [
                        {
                            "fileName": "string",
                            "mimeType": "string",
                            "recordId": 0,
                            "sigName": "string",
                            "uuid": "string"
                        }
                    ],
                    "keyAlias": "string",
                    "messageContent": {
                        "generalData": {
                            "foivId": "string",
                            "messageType": "string",
                            "reNotice": {
                                "countReNotice": 3,
                                "periodReNotice": "P3DT10H30M"
                            },
                            "settings": {
                                "periodRegistryCollect": "PT24H",
                                "periodTimeRegistryCollectValid": "P30DT24H",
                                "readingNotification": true
                            }
                        },
                        "records": [
                            {
                                "recipientType": "RF_PASSPORT",
                                "content": {
                                    "personDocument": {
                                        "docNumber": "string",
                                        "docSeries": "string"
                                    },
                                    "param": [
                                        {
                                            "name": "string",
                                            "value": "string"
                                        }
                                    ]
                                },
                                "recordId": 1
                            },
                            {
                                "recipientType": "IP_INN",
                                "content": {
                                    "inn": {
                                        "inn": "773421989212"
                                    },
                                    "param": [
                                        {
                                            "name": "string",
                                            "value": "string"
                                        }
                                    ]
                                },
                                "recordId": 4
                            }
                        ]
                    }
                },
                "useSystemSettings": false
            },
            "sendAfter": "2022-03-05T07:56:03.942Z"
        }
    ]
}

Получение результата и проверка работоспособности для gaps-уведомлений

В результате успешной отправки в сервисе gaps-proxy (в логах консоли) можно будет увидеть уникальный номер успешно отправленного уведомления. По нему в будущем планируется получать информацию о статусе сообщения, в стороннем сервисе smev-proxy, который и осуществляет отправку gaps-уведомлений клиентам.

Получение сообщений об ошибках отправки уведомлений

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

Отправка push-уведомлений

Во всех примерах используются только POST-запросы. Конечный результат отправки уведомления можно будет увидеть в заглушках. Каждый тип уведомления имеет свою заглушку.
Push-уведомление - уведомление, отправляемое на устройства пользователя (на смартфон или в браузер клиента по device token).

Отправка push-уведомления общего типа

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки push-уведомлений.
Адрес для отправки запроса - /v1/systems/{systemId}/push.
Тело запроса
[
  {
    "title" : "myTitle",
    "body" : "myBody",
    "image" : "myImage",
    "data": {
        "some-field" : "some-value"
    },
    "reportForm": {
      "reportId": "string",
      "data": {
        "content": "contentReportFrom"
      }
    },
    "sendAfter": "2021-11-18T07:50:45.042Z",
    "deviceTokens": [
        "fuoclvYmXQEH3Z1zMaJCZe:APA91bHlquc24Cqt-jPM3Iop-E8hrUtwyjiZZj99_lARnwb7C3P-3vn7GzzQrlHuJnYULnv41LoaZxki418mDGCM9w8Bgc8spUWvUZ6xeYY0W4WdriBwrxyN0O7iB2fuvaYbXyR-_MLQ"
    ],
    "topic": "topicName",
    "condition": "conditionString"
  }
]
Уведомление должно содержать body или reportForm (поля взаимоисключающие).

Отправка push-уведомления с пользовательскими данными

Добавление настроек пользователя для отправки push-уведомления

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки push-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан.
Для отправки уведомления пользователю необходимо задать настройки по адресу /v1/systems/{systemId}/user-settings/user/{userId}/type/push?profileId=userProfile.
Тело запроса
{
    "tokens": ["fuoclvYmXQEH3Z1zMaJCZe:APA91bHlquc24Cqt-jPM3Iop-E8hrUtwyjiZZj99_lARnwb7C3P-3vn7GzzQrlHuJnYULnv41LoaZxki418mDGCM9w8Bgc8spUWvUZ6xeYY0W4WdriBwrxyN0O7iB2fuvaYbXyR-_MLQ"],
    "enabled": {
        "value": true //при false отправка сообщения для типа уведомления будет запрещена
    }
}

Отправка push-уведомления

Предусловия:
  • система должна быть создана;
  • система должна быть настроена для отправки push-уведомлений;
  • пользователь должен быть создан, профиль пользователя должен быть создан, настройки пользователя должны быть созданы.
Адрес для отправки запроса - /v1/systems/{systemId}/users.
Тело запроса
{
  "users": [
    {
      "profileId": "userProfile",
      "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  ],
  "notifications": [
    {
      "type": "push",
      "title": "myTitle",
      "content": "myContent",
      "reportForm": {
        "reportId": "string",
        "data": {
          "content": "contentReportFrom"
        }
      },
      "extraNotificationData": {
        "image" : "myImage",
        "data": {
            "some-field" : "some-value"
        },
        "deviceTokens": [
            "fuoclvYmXQEH3Z1zMaJCZe:APA91bHlquc24Cqt-jPM3Iop-E8hrUtwyjiZZj99_lARnwb7C3P-3vn7GzzQrlHuJnYULnv41LoaZxki418mDGCM9w8Bgc8spUWvUZ6xeYY0W4WdriBwrxyN0O7iB2fuvaYbXyR-_MLQ"
        ],
        "topic": "topicName",
        "condition": "conditionString"
    },
      "sendAfter": "2021-12-01T09:15:24.151Z"
    }
  ]
}
Уведомление должно содержать content или reportForm (поля взаимоисключающие).

Отправка sms-уведомлений

В разделе описаны действия, которые необходимо выполнить, чтобы отправить sms-уведомление.
  1. Создание системы. Вызовите метод /v1/systems.
    Тело запроса
    {
      "systemName": "testSystem",
      "systemDescription": "Система для примера работы Центра уведомлений"
    }
    
  2. Настройка системы. Вызовите метод /v1/systems/{systemId}/notificationTypes.
    Тело запроса
    {
        "code": "sms",
        "settings": {
            "systemTypeProtocol": "smpp",
            "host": "fake-smpp-simulator",
            "port": 2775,
            "smscUsername": "smppclient",
            "smscPassword": "password",
            "defaultFrom": "272727"
        }
    }
    
  3. Отправка сообщения. Вызовите метод /v1/systems/{systemId}/sms.
    Тело запроса
    {
     "flag": "string",
     "phoneNumbers": ["+79105564132"],
     "text": "SMS-сообщение, отправляемое из Центра уведомлений"
    }
    

Работа с группами пользователей

Группы пользователей используются для массовой рассылки уведомлений. Уведомление будет отправлено каждому пользователю, состоящему в группе.

Создание группы пользователей

Адрес для отправки запроса - /v2/systems/{systemId}/groups.
Тело запроса
{
  "name": "Группа1",
  "description": "Тестовая группа"
}

Добавление пользователя в группу

Предусловия:
  • группа должна быть создана;
  • пользователь должен быть создан.
Адрес для отправки запроса - /v2/systems/{systemId}/groups/{groupId}/users.
Тело запроса
[
  {
    "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "profileId": "3fa85f64-5717-4562-b3fc-2c963f66afa7"
  }
]

Управление временем отправки уведомлений

Отправка уведомления по расписанию

В профиле пользователя задается расписание, в котором указывается, когда ему нельзя отправлять уведомления.
Чтобы настроить расписание:
  1. Создайте пользователя.
    Request type=java
    POST
    http://platform-gateway/notification-center-api-gateway/v2/user
    {
        "id":"3fa85f64-5717-4562-b3fc-2c963f66afa6”,
         "name":"Василий Петров”
    }
    
  2. Создайте профиль пользователя.
    Request type=java
    POST
    http://platform-gateway/notification-center-api-gateway/v2/user/3fa85f64-5717-4562-b3fc-2c963f66afa6/profile
    {
          "profileId": "work”,
           "name": "Рабочий”
           "isDefault": true
    }
    
  3. В профиле пользователя заполните все поля, в том числе поле типа уведомления ("notificationType"). Для каждого типа уведомления может быть настроено разное расписание.
    • Пример настройки расписания для push-уведомлений:
      Тело запроса
      {
          "dnd": {
              "byDayWeek": [
              {
                  "dayOfWeeks": [
                  "SUNDAY",
                  "SATURDAY"
                  ],
                  "from": "00:00",
                  "to": "08:00"
              }
              ],
              "byPeriod": [
              {
                  "from": "2021-12-05T12:32:08.123184",
                  "to": "2021-12-06T12:32:08.123221"
              }
              ],
              "offset": "+3"
          }
          "tokens": ["fuoclvYmXQEH3Z1zMaJCZe:APA91bHlquc24Cqt-jPM3Iop-E8hrUtwyjiZZj99_lARnwb7C3P-3vn7GzzQrlHuJnYULnv41LoaZxki418mDGCM9w8Bgc8spUWvUZ6xeYY0W4WdriBwrxyN0O7iB2fuvaYbXyR-_MLQ"]
      
      }
      
    • Пример настройки расписания для email-уведомлений:
      Тело запроса
       {
          "dnd": {
              "byDayWeek": [
              {
                  "dayOfWeeks": [
                  "SUNDAY",
                  "SATURDAY"
                  ],
                  "from": "00:00",
                  "to": "08:00"
              }
              ],
              "byPeriod": [
              {
                  "from": "2021-12-05T12:32:08.123184",
                  "to": "2021-12-06T12:32:08.123221"
              }
              ],
              "offset": "+3"
          }
          "to": ["first@mail.ru", "second@email.ru"],
          "cc": ["copy@email.ru"]
      }
      
    • Пример настройки расписания для gaps-уведомлений:
      Тело запроса
      {
          "dnd": {
              "byDayWeek": [
              {
                  "dayOfWeeks": [
                  "SUNDAY",
                  "SATURDAY"
                  ],
                  "from": "00:00",
                  "to": "08:00"
              }
              ],
              "byPeriod": [
              {
                  "from": "2021-12-05T12:32:08.123184",
                  "to": "2021-12-06T12:32:08.123221"
              }
              ],
              "offset": "+3"
          }
          "docNumber": "4563",
          "docSeries": "578468",
      }
      

Отложенная отправка

При отложенной отправке в сообщении указывается, что его нужно отправить после определенного времени. Это время задается в параметре "sendAfter".
Например, отложенная отправка email-уведомления в общем виде выглядит так:
Тело запроса
[
  {
    "to": [
      "string"
    ],
    "cc": [
      "string"
    ],
    "bcc": [
      "string"
    ],
    "fileGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "from": "string",
    "displayName": "string",
    "subject": "string",
    "importance": "HIGH",
    "contentType": "HTML",
    "content": "string",
    "sendAfter": "2022-04-22T07:20:41.787Z",
    "sendSeparate": true
  }
]

Отправка webhook-уведомлений

Предусловие: система должна быть создана.
  1. Добавление настроек системы.
    Адрес для отправки запроса - /v1/systems.
    Тело запроса
    {
       "systemId" : "110841e3-e6fb-4191-8fd8-5674a5107c33",
       "code" : "WEBHOOK",
       "settings": {
        "url": {
          "fullUrl": "https://api.sberbank.ru/bot5951359449:AAFipGq_vvsrFrHzrCR54dkWRL7GDpCdkXo/sendMessage"
        },
        "method": "POST",
        "headers": [
          {
            "name": "Content-Type",
            "value": "application/json"
          }
        ]
       }
    }
    
  2. Отправка уведомления.
    Адрес для отправки уведомления - /v1/systems/{systemId}/webhook.
    Тело запроса
    [
      {
        "sendAfter": "2023-02-16T09:22:57.131Z",
        "body": {
          "chatid": "",
          "text": ""
        },
       "timeOutSeconds": 5
      }
    ]
    

Отправка уведомления по событию

Предусловия:
  • система должна быть создана;
  • настройки системы должны быть созданы.
  1. Создание правила для отправки событий.
    Адрес для отправки запроса - /v1/event-rules.
    Тело запроса
    {
      "ruleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "description": "string",
      "rules": {
        "created": "2023-02-20T09:19:08.437Z",
        "userGroups": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ],
        "userParams": [
          {
            "paramName": "string",
            "type": "TEXT",
            "value": "string"
          }
        ],
        "systemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "notificationFlag": "string",
        "templates": [
          {
            "notificationType": "string",
            "notificationTitle": "string",
            "templateId": "string",
            "templateContentType": "HTML"
          }
        ],
        "throttling": {
          "window": 1,
          "windowUnit": "SECONDS",
          "threshold": 1,
          "mode": "REJECT"
        }
      },
      "labels": [
        "string"
      ]
    }
    
  2. Создание триггера события, по которому инициируется отправка уведомлений.
    Адрес для отправки запроса - /v1/event-trigger.
    Тело запроса
    {
        "triggerId": "110841e3-e6fb-4191-8fd8-5674a5107c33",
        "name": "nameTrigger",
        "ruleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "triggerRules": {
            "eventParams": {
                "everyYear": {
                    "weekAndMonthOfYear": {
                        "dayOfWeek": ["THURSDAY"],
                        "numberOfWeek": "3",
                        "monthOfYear": "1",
                        "numberOfYear": "2023"
                    }
                }
            },
            "sendTime": "09:00",
            "offset": "+3",
            "repeatPeriod": [
                {
                    "from": "2023-02-17",
                    "to": "2023-02-28"
                }
            ]
        }
    }
    

Отправка уведомления по алерту

Предусловия:
  • система должна быть создана;
  • настройки системы должны быть созданы.
  1. Создание правила для отправки событий.
    Адрес для отправки запроса - /v1/event-rules.
    Тело запроса
    {
      "ruleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "description": "string",
      "rules": {
        "created": "2023-02-20T09:19:08.437Z",
        "userGroups": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ],
        "userParams": [
          {
            "paramName": "string",
            "type": "TEXT",
            "value": "string"
          }
        ],
        "systemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "notificationFlag": "string",
        "templates": [
          {
            "notificationType": "string",
            "notificationTitle": "string",
            "templateId": "string",
            "templateContentType": "HTML"
          }
        ],
        "throttling": {
          "window": 1,
          "windowUnit": "SECONDS",
          "threshold": 1,
          "mode": "REJECT"
        }
      },
      "labels": [
        "string"
      ]
    }
    
  2. Информирование о наступлении алерта.
    Адрес для отправки запроса - /vmalert-plugin/master/v1.
    Тело запроса
    [
       {
          "startsAt":"2023-01-31T06:27:38.749374581Z",
          "generatorURL":"http://vmalert-vmalert-test-6ccc88db8c-jqvn7:8080/vmalert/alert?group_id=5379758941608612380&alert_id=10426903699200018610",
          "endsAt":"2023-01-31T06:31:38.749374581Z",
          "labels":{
             "alertgroup":"vmalert",
             "alertname":"value between bounds",
             "app":"monitoring-rest",
             "instance":"monitoring-rest.gt-sol-dev-documentation-01.svc:8081",
             "job":"kubernetes-platform",
             "nodeId":"local",
             "severity":"major",
             "standId":"local",
             "tenant":"local",
             "version":"0.0.1-SNAPSHOT"
          },
          "annotations":{
             "description":"260 \u003c value 263 \u003c 270",
             "value":"263"
          }
       }
    ]
    

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Центр уведомлений
Регистрация пользователей и настройка их каналов связи. Отправка уведомлений (с заданным шаблоном или без), отслеживание статуса доставки
Предыдущий раздел
Настройка отправки уведомлений по алертам
Следующий раздел
Управление пользователями
Была ли страница полезной?