Перейти к содержанию

Device API

Device API регистрирует устройства в приложении Pushwoosh и записывает их активность: значения тегов, открытия приложения, открытия и доставки push-уведомлений. Большинство этих методов Pushwoosh SDK вызывает автоматически, поэтому вызывайте их напрямую, когда управляете устройствами со своего сервера или из собственного клиента. Чтобы зарегистрировать много устройств или установить им теги одним запросом, используйте Audience API.

registerDevice

Anchor link to

POST https://api.pushwoosh.com/json/1.3/registerDevice

Вызывается внутренне из SDK. Регистрирует устройство для приложения.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
push_tokenstringPush-токен для устройства.
languagestringЯзыковая локаль устройства. Должен быть двухбуквенный код в нижнем регистре в соответствии со стандартом ISO-639-1.
hwid*stringУникальная строка для идентификации устройства (IDFV на iOS, случайно сгенерированное значение на Android). Узнать больше
timezoneintegerСмещение часового пояса в секундах для устройства.
device_type*integerТип устройства. См. возможные значения ниже.
emailstringАдрес электронной почты для регистрации (используйте для email-пользователей вместо HWID и push-токена).
tagsobjectЗначения тегов для присвоения зарегистрированному устройству.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"push_token": "dec301908b9ba8XXXXX57a58e40f96f5XXXXX2068674f5XXXXa25cdc250a2a41", // необязательно.
"hwid": "1CA6XXXXX-8DAC-XXXXX-XXXXX-B756288B6D3C", // обязательно. Аппаратный ID устройства
"idfa": "AEBE52E7-0XXXXX-455A-XXXXX-E57283966239", // необязательно.
"timezone": 3600, // необязательно. Смещение в секундах
"device_type": 1, // обязательно. См. возможные значения ниже. Для email
// используйте параметры "emails", как описано ниже.
"email": "email_address@domain.com", // используйте вместо "hwid" и "push_token" для регистрации
// адреса электронной почты для вашего email-проекта
"language": "en", // необязательно. Код языка ISO 639-1|639-2
"userId": "Alex", // необязательно.
"tags": { // необязательно. Значения тегов для установки на зарегистрированное устройство
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"], // устанавливает список значений для тегов типа List
"DateTag": "2024-10-02 22:11", // обратите внимание, что время должно быть в UTC
"BooleanTag": true // допустимые значения: true, false
},
// системные теги, необязательные
"app_version": "1.2.3",
"device_model": "Samsung SM-G355H",
"os_version": "2.3",
// необязательные ключи шифрования для chrome/firefox
"public_key": "BNmDO4BTKEMJqaqprTf7t/HBXXXXX/orcXXXXX/scS5CFP6XXXXXHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
"auth_token": "RlRmCXXXXX/s7XXXXXjKFzoQ==",
// необязательные ключи FCM для Chrome (для XMPP)
"fcm_token": "BNmDO4BTKEMJXXXXXprTf7t/XXXXXBQ/orXXXXXc/scS5CFP6zhQGIHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
"fcm_push_set": "RlXXXXXGM/s7XXXXXjKFzoQ=="
}
}

Возможные типы устройств:

  • 1 – iOS
  • 3 – Android
  • 7 – Mac OS X
  • 8 – Windows
  • 9 – Amazon
  • 10 – Safari
  • 11 – Chrome
  • 12 – Firefox
  • 13 – Internet Explorer
  • 14 – Email
  • 17 – Huawei
  • 18 – SMS
  • 20 – Web
  • 21 – WhatsApp
  • 22 – Line
  • 23 – Kakao Talk
  • 24 – Telegram
  • 25 – Apple Wallet
  • 26 – Google Wallet
  • 27 – Viber

Регистрация email-устройств

Anchor link to

Чтобы зарегистрировать email-подписчика для вашего приложения, отправьте параметр "email": "email_address@domain.com" в вашем запросе /registerDevice или /registerEmail следующим образом:

Пример запроса
Anchor link to
{
"request":{
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"email": "email_address@domain.com", // обязательно. Адрес электронной почты для регистрации в вашем email-проекте
"language": "en", // необязательно. Код языка ISO 639-1|639-2
"userId": "Alex", // необязательно.
"tags": { // необязательно. Значения тегов для установки на зарегистрированное устройство
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"], // устанавливает список значений для тегов типа List
"DateTag": "2024-10-02 22:11", // обратите внимание, что время должно быть в UTC
"BooleanTag": true // допустимые значения: true, false
}
}
}

Регистрация устройств WhatsApp

Anchor link to

Чтобы зарегистрировать устройство WhatsApp для вашего приложения, следуйте этим рекомендациям:

  • hwid: Убедитесь, что это поле содержит префикс whatsapp:, за которым следует номер телефона в формате E.164 (например, whatsapp:+0000000000). Номер телефона должен быть действительным, что будет проверено Pushwoosh.

  • Push-токен: Push-токен не требуется, так как hwid автоматически будет функционировать как push-токен.

  • device_type: Установите это поле в 21, чтобы указать WhatsApp в качестве платформы.

Пример запроса
Anchor link to
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "whatsapp:+0000000000", // обязательно. Префикс WhatsApp и действительный номер телефона
"timezone": 3600, // необязательно. Смещение времени в секундах
"device_type": 21, // обязательно. Тип устройства WhatsApp — 21
"language": "en", // необязательно. Код языка ISO 639-1|639-2
"userId": "Alex", // необязательно. Идентификатор пользователя
"tags": { // необязательно. Значения тегов для пользовательской сегментации
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"],
"DateTag": "2024-10-02 22:11", // формат UTC
"BooleanTag": true
},
"app_version": "1.2.3", // необязательно. Версия приложения
"device_model": "Samsung SM-G355H", // необязательно. Модель устройства
"os_version": "2.3" // необязательно. Версия операционной системы
}
}

Регистрация SMS-устройств

Anchor link to

Чтобы зарегистрировать SMS-устройство для вашего приложения, следуйте этим рекомендациям:

  • hwid: Убедитесь, что это поле содержит номер телефона в формате E.164 (например, +0000000000). Номер телефона должен быть действительным, что будет проверено Pushwoosh.

  • Push-токен: Push-токен не требуется, так как hwid автоматически будет функционировать как push-токен.

  • device_type: Установите это обязательное поле в 18, чтобы указать SMS в качестве платформы.

Пример запроса
Anchor link to
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "+0000000000", // обязательно. Действительный номер телефона в формате E.164
"timezone": 3600, // необязательно. Смещение времени в секундах
"device_type": 18, // обязательно. Тип устройства SMS — 18
"language": "en", // необязательно. Код языка ISO 639-1|639-2
"userId": "Alex", // необязательно. Идентификатор пользователя
"tags": { // необязательно. Значения тегов для пользовательской сегментации
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"],
"DateTag": "2024-10-02 22:11", // формат UTC
"BooleanTag": true
},
"app_version": "1.2.3", // необязательно. Версия приложения
"device_model": "Samsung SM-G355H", // необязательно. Модель устройства
"os_version": "2.3" // необязательно. Версия операционной системы
}
}

Коды состояния:

Код состояния HTTPstatus_codeОписание
200200Устройство успешно зарегистрировано
200210Ошибка аргумента. См. status_message для получения дополнительной информации.
400N/AНеверно сформированная строка запроса
500500Внутренняя ошибка

unregisterDevice

Anchor link to

POST https://api.pushwoosh.com/json/1.3/unregisterDevice

Удаляет push-токен устройства. Отмененное устройство по-прежнему учитывается в общем количестве устройств и может быть доступно для In-App сообщений. Вызывается внутренне из SDK.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16XXXXXe7a6beceXXXXX530fb2" // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
}
}

Коды состояния:

Код состояния HTTPstatus_codeОписание
200200Устройство успешно отписано
200210Ошибка аргумента. См. status_message для получения дополнительной информации.
400N/AНеверно сформированная строка запроса
500500Внутренняя ошибка

deleteDevice

Anchor link to

POST https://api.pushwoosh.com/api/v2/device-api/deleteDevice

Удаляет устройство и все связанные с ним данные, идентифицированные указанным HWID в приложении. В отличие от /unregisterDevice, который только удаляет push-токен и сохраняет запись об устройстве, /deleteDevice полностью удаляет устройство. Запрос обрабатывается асинхронно, и конечная точка возвращает 200 OK, как только запрос на удаление был принят к обработке.

Заголовки запроса

Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Content-TypeДаapplication/json

Тело запроса

Anchor link to
ИмяОбязательноТипОписание
applicationДаstringКод приложения Pushwoosh
hwidДаstringАппаратный ID устройства для удаления.

Пример запроса

Anchor link to
{
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16df378e7a6bece9614e1530fb2" // обязательно. Аппаратный ID устройства для удаления
}

Пример ответа

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Коды состояния
Anchor link to
Код состояния HTTPstatus_codeОписание
200200Запрос на удаление принят
200210Ошибка аргумента. См. status_message для получения дополнительной информации.
400N/AНеверно сформированная строка запроса
401N/AОтсутствует или недействителен токен авторизации
500500Внутренняя ошибка

POST https://api.pushwoosh.com/json/1.3/setTags

Устанавливает значения тегов для устройства. Вызывается из SDK.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
tags*objectJSON-объект тегов для установки, отправьте “null” для удаления значения.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request":{
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16XXXXXe7a6becXXXXXe1530fb2", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"tags": { // обязательно.
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"], // устанавливает список значений для тегов типа List
"DateTag": "2024-10-02 22:11", // обратите внимание, что время указано в UTC
"BooleanTag": true // допустимые значения - true, false
}
}
}

Увеличение значений тега Integer

Anchor link to

Чтобы увеличить значение тега Integer, используйте параметр operation со значением “increment” следующим образом:

{
"request":{
"application": "12345-67890", // обязательно. Код приложения Pushwoosh
"hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"tags": { // обязательно.
"Level": { // Имя тега
"operation": "increment", // перезаписывает целочисленный тег с шагом следующего значения
"value": 1 // инкремент для значения тега
}
}
}
}

Уменьшение значений тега Integer

Anchor link to

Для уменьшения используйте отрицательные числа в качестве значения для операции “increment” (-1, -2, -3, -n):

{
"request":{
"application": "12345-67890", // обязательно. Код приложения Pushwoosh
"hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"tags": { // обязательно
"Level": { // Имя тега
"operation": "increment", // перезаписывает целочисленный тег с уменьшением на следующее значение
"value": -1 // декремент для значения тега
}
}
}
}

Добавление значений в тег List

Anchor link to

Чтобы расширить тег List новыми значениями, используйте параметр operation со значением “append” следующим образом:

Пример
{
"request": {
"hwid": "3d124a79XXXXf189XXXX7dfd9XXXXafd", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"application": "6XXXX-XXXX3", // обязательно. Код приложения Pushwoosh
"tags": { // обязательно.
"ListTag": { // Имя тега
"operation": "append", // добавляет следующие значения в список значений тега
"value": [ // значения для добавления
"tag2",
"tag3"
]
}
}
}
}

Удаление значений из тега List

Anchor link to

Чтобы удалить некоторые значения из тега List, используйте операцию “remove” следующим образом:

{
"request":{
"application": "12345-67890", // обязательно. Код приложения Pushwoosh
"hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"tags": { // обязательно.
"In-app Product": { // Имя тега
"operation": "remove", // удаляет следующие значения из тега списка
"value": "outwear_02" // значение или значения для удаления
}
}
}
}

Установка тегов по UserID

Anchor link to

Чтобы установить теги для всех устройств, связанных с определенным User ID, используйте параметр “userId” вместо “hwid”.

Пример
{
"request":{
"application": "AAAAA-BBBBB", // Код приложения Pushwoosh
"userId": "some_user", // User ID, для которого вы хотите установить теги
"tags": { // теги и значения для установки
"Language": "es"
}
}
}

Коды состояния:

Код состояния HTTPstatus_codeОписание
200200Теги успешно установлены
200210Ошибка аргумента. См. status_message для получения дополнительной информации.
400N/AНеверно сформированная строка запроса
500500Внутренняя ошибка

POST https://api.pushwoosh.com/json/1.3/getTags

Получает список тегов с соответствующими значениями для конкретного устройства.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
userIdstringUser ID для использования вместо “hwid”. Если используется вместе с “hwid”, “hwid” имеет приоритет.
hwidstringАппаратный ID устройства, используемый в запросе /registerDevice.
{
"status_code": 200,
"status_message": "OK",
"response": {
"result": {
"Language": "fr"
}
}
}
Пример
{
"request":{
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "HWID", // необязательно. Аппаратный ID устройства, используемый в /registerDevice API
"userId": "USER_ID" // необязательно. Может использоваться вместо "hwid" для получения тегов для конкретного пользователя
}
}

POST https://api.pushwoosh.com/json/1.3/setBadge

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
badge*integerТекущий значок в приложении.
{
"status_code": 200,
"status_message": "OK"
}
Пример
{
"request":{
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16dXXXXe7a6XXXX9614XXXX0fb2", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"badge": 4 // обязательно. Текущий значок в приложении
}
}

Этот метод НЕ ИСПОЛЬЗУЕТСЯ для обновления значения значка на устройстве. Вместо этого используйте запрос /createMessage с параметром "ios_badges".

applicationOpen

Anchor link to

POST https://api.pushwoosh.com/json/1.3/applicationOpen

Регистрирует событие открытия приложения. Вызывается внутренне из SDK.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
{
"status_code": 200,
"status_message": "OK"
}
Пример
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16dXXXXe7a6XXXX9614eXXXXfb2" // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
}
}

POST https://api.pushwoosh.com/json/1.3/pushStat

Регистрирует событие открытия push-уведомления. Вызывается внутренне из SDK.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
userIdstringUser ID для связи с событием открытия push-уведомления.
hashstringХэш-тег, полученный в push-уведомлении (параметр “p” в полезной нагрузке push-уведомления).
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16dfXXXX7a6beXXXX14e1530fb2", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"userId": "USER012345", // необязательно. User ID для связи с событием открытия push-уведомления
"hash": "HASH_TAG" // необязательно. Хэш-тег, полученный в push-уведомлении
// (параметр "p" в полезной нагрузке push-уведомления)
}
}

messageDeliveryEvent

Anchor link to

POST https://api.pushwoosh.com/json/1.3/messageDeliveryEvent

Регистрирует событие доставки push-уведомления для устройства. Вызывается внутренне из SDK.

Заголовки запроса
Anchor link to
ИмяОбязательноЗначениеОписание
AuthorizationДаToken XXXXТокен Device API для доступа к Device API. Замените XXXX на ваш фактический токен Device API.
Тело запроса
Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
hwid*stringАппаратный ID устройства, используемый в запросе /registerDevice.
hashstringХэш-тег, полученный в push-уведомлении (параметр “p” в полезной нагрузке push-уведомления).
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "XXXXX-XXXXX", // обязательно. Код приложения Pushwoosh
"hwid": "8f65b16dfXXXX7a6bece9XXXX1530fb2", // обязательно. Аппаратный ID устройства, используемый в /registerDevice API
"hash": "HASH_TAG" // необязательно. Хэш-тег, полученный в push-уведомлении
// (параметр "p" в полезной нагрузке push-уведомления)
}
}