diff --git a/README.md b/README.md index d6e4986..6cb9c78 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,35 @@ Content-Type: application/json В приложение попадает только `project_id`; сервисный токен в APK не хранится. - `push-token` устройства приходит в `onNewToken` (лог `RuStorePush`) и сохраняется в `SharedPreferences` `bus127_push`. -- Приложение подписывается на топик `bus127` — топик должен существовать в консоли. - Сообщения без поля `topic` приходят всем устройствам проекта. +- Приложение подписывается на топик `bus127` при старте. Отдельного создания топика + в консоли не требуется — публикация в него проходит и для несуществующего. - Если в запросе есть секция `notification` — уведомление показывает сам SDK; если переданы только `data` (`title`/`body`, необязательный `url`) — приложение показывает его само и открывает ссылку по клику. +### Рассылка + +**Всем подписчикам топика** (все устройства, открывшие приложение): + +``` +POST https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/publish +Authorization: Bearer {service-token} +{"message":{"notification":{"title":"...","body":"..."}}} +``` + +**Одному устройству** — по его push-токену: + +``` +POST https://vkpns.rustore.ru/v1/projects/{project_id}/messages:send +Authorization: Bearer {service-token} +{"message":{"token":"...","notification":{"title":"...","body":"..."}}} +``` + +Если устройства не подписались сами, их токены можно подписать разом: +`POST .../topics/{topic}/batch_subscribe` с `{"push_tokens":[...]}`. +Ответ `400` с текстом про `registration token` означает, что адресат не указан +или токен устройства неверен; `401`/`403` — неверный сервисный токен или его пара с `project_id`. + ## Структура ```