Перейти к основному содержимому

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

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

Для работы с топиками потребуются следующие артефакты:

  • project_id (ID проекта), ss_token (сервисный токен) — эти значения можно получить в консоли разработчика. Для этого нужно перейти в раздел Push-уведомления, открыть вкладку Проекты на странице приложения. Подробнее смотрите в разделе Отправка push-уведомлений.
  • push_token — push-токен(ы) устройств для подписки на рассылку по топику и отписки от неё.
  • topic — топик в проекте.

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

к сведению

Требуется наличие заголовка Authorization: Authorization: Bearer $ss_token.

Тело запроса

ПараметрТипОписание
datamapОбъект, содержащий пары "key": value.
notificationobject (message.notification)Базовый шаблон уведомления для использования на всех платформах.
androidobject (message.android)Специальные параметры Android для сообщений.

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

ПараметрТипОписание
messagetextСообщение об успешной отправке пуша.

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

ПараметрТипОписание
codeintКод ошибки.
statustextСтатус.
messagetextПодробная ошибка.

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

к сведению

Требуется наличие заголовка Authorization: Authorization: Bearer $ss_token.

Тело запроса

ПараметрТипОписание
push_tokensarray (string)Push-токены, которые нужно подписать на топик.

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

ПараметрТипОписание
messagetextСообщение об успешной подписке или наличии ошибок.
errorsobject array (тело ошибки по токену)Ошибки по токенам.

Тело ошибки по токену

ПараметрТипОписание
push_tokentextPush-токен.
errorobject (тело ответа ошибки)Ошибка.

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

ПараметрТипОписание
codeintКод ошибки.
statustextСтатус.
messagetextПодробная ошибка.

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

к сведению

Требуется наличие заголовка Authorization: Authorization: Bearer $ss_token.

Тело запроса

ПараметрТипОписание
push_tokensstring arrayPush-токены, которые нужно отписать от топика.

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

ПараметрТипОписание
messagetextСообщение об успешной подписке или наличии ошибок.
errorsobject array (тело ошибки по токену)Ошибки по токенам.

Тело ошибки по токену

ПараметрТипОписание
push_tokentextPush-токен.
errorobject (тело ответа ошибки)Ошибка.

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

ПараметрТипОписание
codeintКод ошибки.
statustextСтатус.
messagetextПодробная ошибка.

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

Подписка на топик hello

Запрос

POST  'https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/batch_subscribe' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"push_tokens" : [
"kHrfTow3AjqdgUeCJLwbIHd7c0......",
"9mbJVS0-2e0cCcIx7X5nxMIgp8......"
]
}

Успешный ответ

HTTP/ 2 200
{
"message" : "success"
}

Частично успешный ответ

HTTP/ 2 200
{
"message" : "1 error(s)",
"errors" : [
{
"push_token" : "9mbJVS0-2e0cCcIx7X5nxMIgp8......",
"error" : {
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}
}
]
}

Отписка от топика hello

Запрос

POST  'https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/batch_unsubscribe' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"push_tokens" : [
"kHrfTow3AjqdgUeCJLwbIHd7c0......",
"9mbJVS0-2e0cCcIx7X5nxMIgp8......"
]
}

Успешный ответ

HTTP/ 2 200
{
"message" : "success"
}

Частично успешный ответ

HTTP/ 2 200
{
"message" : "1 error(s)",
"errors" : [
{
"push_token" : "9mbJVS0-2e0cCcIx7X5nxMIgp8......",
"error" : {
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}
}
]
}

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

Запрос

POST  'https://vkpns-topics.rustore.ru/v1/projects/Lpvk29a2Al2P6tWu-a-aN3PKwO6-qvXZ/topics/hello/publish' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"message" : {
"notification" :{
"body" : "This is a notification message!",
"title" : "Message",
"image" : "https://image-hosting.org/284239234.jpeg"
}
}
}

Успешный ответ

HTTP/ 2 200
{
"message" : "payload has been successfully published to topic hello"
}

Пример ошибки BAD_REQUEST

HTTP/ 2 400
{
"code" : 2000 ,
"status" : "BAD_REQUEST",
"message" : "failed to parse request: invalid character 's' after object key:value pair"
}

Пример ошибки FORBIDDEN

HTTP/ 2 403
{
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}