In-App уведомления
Доставляйте уведомления прямо внутри своего приложения — без внешних сервисов.
Настройка не нужна
In-App каналу не нужны учётные данные и внешняя настройка. Просто дайте ему имя и сохраните.
Как это работает
PushData хранит in-app уведомления в своей базе — по одному элементу inbox на контакт. Ваш фронтенд получает и показывает их через публичные эндпоинты inbox с публичным (pk_) ключом приложения.
SEND-шаг воркфлоу / канальная отправка
↓
PushData сохраняет элемент inbox для контакта
↓
Ваш фронтенд опрашивает inboxКонтакт адресуется вашим id пользователя (user_id = externalId контакта).
API inbox
Все вызовы принимают Authorization: Public pk_ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ и идентифицируют пользователя параметром user_id. При включённой проверке идентичности добавьте X-Identity-Hash (см. Аутентификация).
# Последние элементы (limit ≤ 200, по умолчанию 20); unread_only=true для списка непрочитанных
GET /api/v1/public/inbox?user_id=user-123&unread_only=true&limit=20
# → { "items": [ { "id", "notification_id", "title", "body", "data", "deep_link", "read", "read_at", "inserted_at" } ] }
# Счётчик непрочитанных
GET /api/v1/public/inbox/unread_count?user_id=user-123
# → { "unread_count": 3 }
# Отметить один элемент прочитанным
POST /api/v1/public/inbox/ITEM_ID/read { "user_id": "user-123" }
# Отметить всё прочитанным
POST /api/v1/public/inbox/read_all { "user_id": "user-123" }
# → { "marked_read": 3 }Неизвестный user_id даёт пустой inbox, а не ошибку.
Получение уведомлений в приложении
const API = 'https://api.pushdata.ru'
const headers = { 'Authorization': 'Public pk_ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ', 'Content-Type': 'application/json' }
const { items } = await fetch(`${API}/api/v1/public/inbox?user_id=user-123&limit=20`, { headers }).then(r => r.json())
await fetch(`${API}/api/v1/public/inbox/${items[0].id}/read`, {
method: 'POST',
headers,
body: JSON.stringify({ user_id: 'user-123' }),
})deep_link — это то, что отправка положила в data.deepLink; проверяйте его перед переходом (только http(s) или схема вашего приложения): это данные, заданные при отправке.
Типичные сценарии
- Колокольчик / inbox уведомлений в вашем дашборде
- Toast-оповещения по событиям бэкенда
- Ленты активности