SDK и примеры
PushData интегрируется через две поверхности:
- REST API (
https://api.pushdata.ru/api/v1) — для серверов (секретный ключpd_) и для устройств/браузеров (публичный ключpk_); - GraphQL API (
https://api.pushdata.ru/api/graphql) — всё, что умеет дашборд (контакты, сценарии, каналы, шаблоны), с секретным ключом или сессией пользователя.
Клиентские SDK
Клиентский SDK живёт в приложении и делает ровно то, что позволено с публичным ключом pk_: регистрирует устройство, обновляет токен, снимает устройство при выходе и сообщает о вовлечённости. Отправки, контакты и настройки — только с секретным ключом, с вашего сервера.
| Платформа | Пакет | Руководство |
|---|---|---|
| iOS (Swift, UIKit / SwiftUI) | PushDataClient — Swift Package | iOS |
| Android (Kotlin / Java) | ru.pushdata:pushdata-android — Maven | Android |
| Flutter (Dart) | pushdata_flutter — pub.dev | Flutter |
| React Native / Expo | @pushdata/react-native — npm | React Native |
| Веб-сайт (браузер) | pushdata — npm, service worker | Web Push |
Каждое руководство ведёт от ключей приложения до первого тестового push: провайдер (APNs / FCM / VAPID), установка пакета, инициализация, регистрация после входа, отметки доставки и открытия, выход, проверка идентичности, проверка на устройстве и таблица ошибок.
У всех SDK один контракт (подробно — в разделе Уведомления):
POST /api/v1/public/devices { token, platform, user_id?, tags?, timezone?, environment?, metadata? } → 201 { id, created }
DELETE /api/v1/public/devices { token } → 200
POST /api/v1/events { type: delivered | opened | clicked, notification_id, device_id } → 202
Authorization: Public pk_… X-Identity-Hash: <HMAC id пользователя> — при включённой проверке идентичностиТокены — нативные: на iOS сырой токен APNs (PushData отправляет на iOS напрямую через APNs, в том числе для Flutter и React Native), на Android — registration token FCM, в браузере — подписка Web Push. В payload каждого push-уведомления есть pushdata_notification_id и pushdata_device_id — ими SDK отмечают delivered / opened / clicked.
Серверные SDK
Отправка, контакты, сценарии и вебхуки — с вашего сервера, секретным ключом pd_…. Тонкие клиенты с одинаковыми операциями, автоматическим Idempotency-Key и повтором при 429 / 5xx; источник — OpenAPI-спецификация.
| Язык | Пакет |
|---|---|
| Node.js / TypeScript | @pushdata/node |
| Python | pushdata |
| PHP | pushdata/pushdata |
| Go | github.com/pushdata-ru/pushdata-go |
| Ruby | pushdata |
| Java / Kotlin | ru.pushdata:pushdata-java |
| .NET / C# | PushData |
Установка, одна и та же отправка на одиннадцати языках (cURL, JS, Python, PHP, Go, Java, Kotlin, C#, Ruby, Swift, Dart), контакты, сценарии, хэш идентичности и вебхуки — на странице Серверные SDK и примеры. Плагины и обвязки для CMS и фреймворков (WordPress, 1С-Битрикс, Tilda, Laravel, Symfony, Django, Rails, Spring Boot, NestJS, ASP.NET Core) — в разделе Интеграции.
Все поля и коды ошибок — в разделе Уведомления.