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

Отправка 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Сообщение об успешной отправке пуша.

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

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

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

к сведению

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

Тело запроса​

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

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

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

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

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

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

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

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

к сведению

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

Тело запроса​

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

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

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

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

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

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

ПараметрТипОписание
codenumberКод ошибки.
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"
}