PD Документация ← На главную

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 PackageiOS
Android (Kotlin / Java)ru.pushdata:pushdata-android — MavenAndroid
Flutter (Dart)pushdata_flutter — pub.devFlutter
React Native / Expo@pushdata/react-native — npmReact Native
Веб-сайт (браузер)pushdata — npm, service workerWeb Push

Каждое руководство ведёт от ключей приложения до первого тестового push: провайдер (APNs / FCM / VAPID), установка пакета, инициализация, регистрация после входа, отметки доставки и открытия, выход, проверка идентичности, проверка на устройстве и таблица ошибок.

У всех SDK один контракт (подробно — в разделе Уведомления):

text
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
Pythonpushdata
PHPpushdata/pushdata
Gogithub.com/pushdata-ru/pushdata-go
Rubypushdata
Java / Kotlinru.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) — в разделе Интеграции.

Все поля и коды ошибок — в разделе Уведомления.