Отправка PUSH#

Отправка PUSH-сообщений#

POST https://direct.i-dgtl.ru/api/v1/message

Метод позволяет отправлять массив одиночных сообщений (от 1 до 1000)

Headers#

Name

Type

Description

Authorization*

string

Basic {TOKEN_1}

Content-Type*

string

application/json

Request Body#

Name

Type

Description

channelType*

string

Канал отправки (PUSH)

senderName*

string

Имя отправителя. Допускается любая строка

destination*

string

Номер телефона абонента

content*

object

Контент сообщения

tags

array

Теги сообщения (массив строк). Каждый тег должен соответствовать выражению ^\w+$ (допускаются буквы в любом регистре, цифры и нижнее подчеркивание «_»)

useLocalTime

boolean

Флаг, отвечающий за таймзону, в которой будет отправлено сообщение:
true – отправка в таймзоне абонента
false – отправка по МСК
По умолчанию true

localSendTime

string

Нижняя граница допустимого времени отправки сообщения (с учетом значенияuseLocalTime)
Дата в формате YYYY-MM-DD hh:mm:ss в диапазоне от (текущее время в UTC - 12 часов) до (текущее время в UTC + 7 дней)
По умолчанию сообщение будет отправлено сразу

localCompletionTime

string

Верхняя граница допустимого времени отправки сообщения (с учетом useLocalTime) в диапазоне от localSendTime до (текущее время в UTC + 70 дней)

ttl

integer

Время жизни сообщения в секундах. По истечении ttl сообщению устанавливается финальный статус.
60 ≤ ttl ≤ 86400

hours

array

Допустимые часы отправки (массив чисел). В массиве могут быть переданы целые числа от 0 до 23, каждое из которых соответствует разрешенному для отправки интервалу с учетом useLocalTime; значения должны быть уникальны.

days

array

Допустимые дни отправки (массив чисел). В массиве могут быть переданы целые числа от 1 (пн) до 7 (вс), каждое из которых соответствует разрешенному для отправки дню недели; значения должны быть уникальны.

callbackUrl

string

Адрес для отправки callback

callbackEvents

array

События, по которым будут отправлены callback (массив строк). При наличии callbackUrl и отсутствии callbackEvents в запросе, будет отправлен callback по событию delivered.

externalMessageId

string

Внутренний id сообщения в вашей системе. До 100 символов.

content.contentType*

String

Тип контента. Допускается только text

content.deviceApp*

String

Название пакета приложения, на которое отправляется PUSH

content.platform*

String

Облако отправки сообщения. Допускаются значения APNS, FCM, HCM, RCM

content.text*

String

Текст сообщения. До 4096 символов.

content.token*

String

Идентификатор абонента в приложении

content.attributes

object

Объект с произвольными парами "key": "value". Может быть использован для передачи кастомных параметров для приложения

В случае успешного запроса возвращается ответ, в котором перечислены идентификаторы сообщений и коды результата. При значении errors = false гарантируется, что все переданные сообщения успешно созданы.

{
  "errors": false,
  "items": [
    {
      "messageUuid": "063474ec-a34f-4558-90c5-984395000004",
      "code": 201
    },
    {
      "messageUuid": "063564ec-a34f-4558-90c5-984395000005",
      "code": 201
    }
  ]
}

Использование невалидного токена / отсутствие заголовка авторизации.

{
    "error": {
        "code": 4012,
        "msg": "Bad credentials"
    }
}
{
    "error": {
        "code": 4010,
        "msg": "Not Authenticated"
    }
}

Использование неподходящего токена.

{
    "error": {
        "code": 4030,
        "msg": "Access Denied"
    }
}

Невалидные параметры в теле запроса.

Payment Required. Недостаточно средств на балансе.

{
    "error": {
        "code": 402,
        "msg": "Insufficient funds"
    }
}

{% hint style=»warning» %} Рекомендуемое время ожидания ответа: 70 секунд.
Как правило, ответ на запрос возвращается не более чем за несколько секунд, но таймаут величиной в 70 секунд позволяет гарантированно получить ответ на запрос, в том числе в ситуациях повышенной нагрузки. {% endhint %}

Возможные варианты перечислений:

Параметр

Варианты

content.platform

Облака отправки PUSH-сообщений

callbackEvents

События для отправки callback

Пример запроса с минимальным набором параметров #

В примере ниже указан минимально необходимый набор параметров для отправки PUSH-сообщения.

POST https://direct.i-dgtl.ru/api/v1/message
Authorization: Basic {TOKEN_1}
Content-Type: application/json
[
  {
    "senderName": "push-sender",
    "channelType": "PUSH",
    "destination": "79999999999",
    "content": {
      "contentType": "text",
      "text": "Текст PUSH-сообщения",
      "platform": "APNS",
      "deviceApp": "ru.i_dgtl.android.push",
      "token": "ceSMD4uWT3y_2z2MLhA...JFHGypuijPYJ_CMHRV"
    }
  }
]
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvc...' \
-d '[{"senderName":"push-sender","channelType":"PUSH","destination":"79999999999","content":{"contentType":"text","text":"Текст PUSH-сообщения","platform":"APNS","deviceApp":"ru.i_dgtl.android.push","token":"ceSMD4uWT3y_2z2MLhA...JFHGypuijPYJ_CMHRV"}}]'

Пример запроса с расширенными параметрами #

Ниже указан пример запроса для отправки PUSH-сообщения с кастомным объектом attributes, отложенной датой отправки и внутренним id сообщения из вашей системы.

POST https://direct.i-dgtl.ru/api/v1/message
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
[
  {
    "channelType": "PUSH",
    "senderName": "push-sender",
    "destination": "79999999999",
    "content": {
      "contentType": "text",
      "text": "Текст пуш-сообщения",
      "deviceApp": "ru.i_dgtl.android.nativepush",
      "platform": "APNS",
      "token": "ceSMD4uWT3y_2z2MLh...JFHGypuijPYJ_CMHRV",
      "attributes": {
        "imageUrl": "https://image.png",
        "size": "medium",
        "key": "value"
      }
    },
    "localSendTime": "2024-03-08 10:00:00",
    "externalMessageId": "bc45281e-b1bc-47da-b231-6d8658b7d12e"
  }
]
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-d '[{"channelType":"PUSH","senderName":"push-sender","destination":"79999999999","content":{"contentType":"text","text":"Текст пуш-сообщения","deviceApp":"ru.i_dgtl.android.nativepush","platform":"APNS","token":"ceSMD4uWT3y_2z2MLhAnG...JFHGypuijPYJ_CMHRV","attributes":{"imageUrl":"https://image.png","size":"medium","key":"value"}},"localSendTime":"2024-03-08 10:00:00","externalMessageId":"bc45281e-b1bc-47da-b231-6d8658b7d12e"}]'