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

API разрабатывалось с целью предоставлять возможность drop-in replacement для Firebase.

Для отправки пуш-уведомления используйте метод POST https://vkpns.rustore.ru/v1/projects/$project_id/messages:send. 

Укажите «ID проекта» и «Сервисный токен», чтобы отправить пуш-уведомление. Эти значения вы можете получить в системе RuStore Консоль. Для этого на странице приложения перейдите в раздел «Push-уведомления» и выберите «Проекты».

image

Сервисный токен нужно указывать в заголовке «Authorization: Bearer {service-token}».

Тело запроса

Параметр

Тип

Описание

validate_only

bool

Произвести валидацию запроса, не отправляя пуш-уведомление

message

object (message)

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

message

Параметр

Тип

Описание

token

string

Пуш токен пользователя, полученный в приложении

data map Объект, содержащий пары «key»: value
notification object (message.notification) Базовый шаблон уведомления для использования на всех платформах

android

object (message.android)

Специальные параметры Android для сообщений

message.notification

Параметр

Тип

Описание

title

string

Название уведомления

body

string

Основной текст уведомления

image

string

Содержит URL-адрес изображения, которое будет отображаться в уведомлении

message.android

Параметр

Тип

Описание

ttl

string (duration format)

Как долго (в секундах) сообщение должно храниться в хранилище.

Пример:«3.5s» 

notification

object (message.android.notification)

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

message.android.notification

Параметр

Тип

Описание

title

string

Название уведомления

body

string

Основной текст уведомления

icon

string

Значок уведомления

color

string

Цвет значка уведомления в формате #rrggbb

image

string

Содержит URL-адрес изображения, которое будет отображаться в уведомлении

channel_id

string

Идентификатор канала уведомления

click_action

string

Действие, связанное с кликом пользователя по уведомлению

В структуре message на данный момент поддерживаются только представленные выше поля.

Тело успешного ответа

Параметр

Тип

Описание

В случае успешного ответа возвращается сообщение с пустым payload

Тело ответа ошибки

Параметр

Тип

Описание

error

object (error)

Ошибка

error

Параметр

Тип

Описание

code

int

Числовой код ошибки (404, 400, 403, 401, ...)

message

string

Детальное описание ошибки

status

string

Код ошибки в текстовом формате (INVALID_ARGUMENT, UNREGISTERED, ...)

HTTP status соответствует полю code.

Возможные ошибки при отправке сообщения:

  • INVALID_ARGUMENT  неправильно указаны параметры запроса при отправке сообщения.
  • INTERNAL  внутренняя ошибка сервиса.
  • TOO_MANY_REQUESTS  превышено количество попыток отправить сообщение.
  • PERMISSION_DENIED— неправильно указан сервисный ключ.
  • NOT_FOUND — неправильно указан пуш токен пользователя.

Алгоритм валидации Message

  1. Если есть непустой payload message.data (есть хотя бы одна пара ключ-значение внутри), то сообщение валидно. Секции message.notification и message.android могут отсутствовать.
  2. Если поля message.data нет, то обязательно должен быть notification. В этом случае проверяется наличие либо поля message.notification, либо message.android.notification. Хотя бы одно из этих полей должно присутствовать, но могут присутствовать оба (если присутствуют оба, то некоторые поля перезаписываются).

Ограничения

  1. Если в пуше нет поля ttl или оно равно 0, то учитывается дефолтное значение равное 4 неделям. Если в пуше отсутствует секция message.android, то она добавляется с полем ttl.
  2. Максимальный объем сообщения 4096 байт.



Обновлено 20 июня 2023 г.
Was this information helpful?