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

Messages API

createMessage

Anchor link to

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

Создает новое push-уведомление.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
application*stringКод приложения Pushwoosh
notifications*arrayМассив JSON с параметрами сообщения. Подробности смотрите в примере запроса ниже.
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

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

Anchor link to
Example
{
"request": {
"application": "XXXXX-XXXXX", // обязательный. Код приложения Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh.
"notifications": [{
"send_date": "now", // опционально. YYYY-MM-DD HH:mm ИЛИ 'now'
"content": { // опционально. объект ИЛИ строка.
"en": "English", // Для Windows используйте "wns_content".
"fr": "French"
},
"title": { // опционально. объект ИЛИ строка.
"en": "Title", // Игнорируется, если указаны заголовки для конкретных платформ
"fr": "Titre" // 'ios_title', 'android_header' и т. д.
}, // см. примеры параметров для конкретных платформ ниже.
"subtitle":{ // опционально. объект ИЛИ строка.
"en": "Subtitle", // Игнорируется, если указаны заголовки для конкретных платформ
"fr": "Sous-titre" // 'ios_subtitle' и т. д.
}, // см. примеры параметров для конкретных платформ ниже.
"ignore_user_timezone": true, // опционально.
"timezone": "America/New_York", // опционально. Если не указано, для "send_date" по умолчанию используется UTC-0.
// См. https://php.net/manual/timezones.php для
// поддерживаемых часовых поясов.
"campaign": "CAMPAIGN_CODE", // опционально. Код кампании, к которой вы хотите
// привязать это push-уведомление.
"geozone": { // опционально. Отправить в геозону
"lat": 22.22,
"lng": 33.33,
"range": 110
},
"rich_media": "XXXXX-XXXXX", // опционально. Скопируйте код Rich Media из адресной строки
// страницы редактора Rich Media в Панели управления Pushwoosh.
"link": "https://google.com", // опционально. Для диплинков добавьте "minimize_link": 0
"minimize_link": 0, // опционально. 0 — не сокращать, 2 — bitly. По умолчанию = 2.
// Обратите внимание, что у сервисов сокращения ссылок есть ограничения
// на количество вызовов.
"data": { // опционально. Строка JSON или объект JSON, будет передан как
"key": "value" // параметр "u" в полезной нагрузке (преобразованный в строку JSON).
},
"transactionId": "unique UUID", // опционально. Уникальный идентификатор сообщения для предотвращения дублирования
// в случае проблем с сетью. Хранится на стороне
// Pushwoosh в течение 5 минут.
"platforms": [ // опционально. 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
1, 3, 7, 8, 9, 10, // 9 — Amazon; 10 — Safari; 11 — Chrome;
11, 12, 17 // 12 — Firefox; 17 — Huawei
],
"preset": "XXXXX-XXXXX", // опционально. Код пресета для push-уведомлений из вашей Панели управления.
// Если в запросе передаются конкретные параметры,
// они переопределяют параметры пресета.
"send_rate": 100, // опционально. Регулирование скорости. Допустимые значения от 100 до 1000 push-уведомлений/секунду.
// Связано с шаблонами, пожалуйста, обратитесь к руководству по движку шаблонов, чтобы узнать больше
"template_bindings": { // опционально.
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // опционально. Плейсхолдеры для динамического контента вместо тегов устройства.
"firstname": "John",
"lastname": "Doe"
},
// Параметры ограничения частоты. Убедитесь, что глобальное ограничение частоты настроено в Панели управления.
"capping_days": 30, // опционально. Количество дней для ограничения частоты (макс. 30 дней)
"capping_count": 10, // опционально. Максимальное количество push-уведомлений, которое может быть отправлено из
// конкретного приложения на конкретное устройство в течение периода 'capping_days'.
// Если созданное сообщение превышает лимит
// 'capping_count' для устройства, оно не
// будет отправлено на это устройство.
"capping_exclude": true, // опционально. Если установлено значение true, это push-уведомление не
// будет учитываться при ограничении частоты для будущих push-уведомлений.
"capping_avoid": true, // опционально. Если установлено значение true, ограничение частоты не будет применяться к
// этому конкретному push-уведомлению.
// Чтобы сохранить сообщение в Inbox через API, используйте "inbox_date" или "inbox_image".
// Сообщение сохраняется при использовании хотя бы одного из этих параметров.
"inbox_date": "2017-02-02", // опционально. Укажите, когда удалить сообщение из Inbox.
// Сообщение будет удалено из Inbox в 00:00:01 UTC
// указанной даты, поэтому предыдущая дата является
// последним днем, когда пользователь может видеть сообщение в своем Inbox.
// Если не указано, датой удаления по умолчанию является
// следующий день после даты отправки.
"inbox_image": "Inbox image URL", // опционально. Изображение, которое будет показано рядом с сообщением.
"inbox_days": 5, // опционально. Укажите, когда удалить сообщение из
// Inbox (срок жизни сообщения в Inbox в днях).
// Может использоваться вместо параметра "inbox_date".
// До 30 дней.
"devices": [ // опционально. Укажите токены или HWID для отправки целевых push-
"hwid_XXXX" // уведомлений. Не более 1000 токенов/HWID в
], // массиве. Если установлено, сообщение будет отправлено только на
// устройства из списка. Группа приложений для списка
// устройств не допускается. Push-токены iOS могут быть только в нижнем регистре.
// Push-уведомления, ориентированные на пользователя
"users": [ // опционально. Если установлено, сообщение будет доставлено только
"user_XXXX" // указанным ID пользователей (устанавливаются через вызов /registerUser).
], // Если указан вместе с параметром devices,
// последний будет проигнорирован. Не более 1000
// ID пользователей в массиве. Группа приложений для списка пользователей
// не допускается.
// Фильтры и условия
"filter": "FILTER_NAME", // опционально.
"conditions": [ // опционально. См. примечание ниже.
"Country", "EQ", "France",
"Language", "EQ", "en"
],
"conditions_operator": "AND" // опционально. Логический оператор для массивов условий.
// Возможные значения: AND | OR. По умолчанию AND.
}]
}
}

Параметры для конкретных платформ

Anchor link to

Параметры iOS

Anchor link to
Example
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"ios_title": { // опционально. Объект ИЛИ строка. Добавляет заголовок для push-уведомления на iOS.
"en": "title"
},
"ios_subtitle": { // опционально. Объект ИЛИ строка. Добавляет подзаголовок для push-уведомления на iOS.
"en": "subtitle"
},
"ios_content": { // опционально. Объект ИЛИ строка. Добавляет контент для push-уведомления на iOS.
"en": "content"
},
"ios_badges": 5, // опционально. Число на иконке приложения iOS.
// Используйте "+n" или "-n", чтобы увеличить/уменьшить значение на n.
"ios_sound": "sound file.wav", // опционально. Имя звукового файла в основном бандле приложения.
// Если оставить пустым, устройство воспроизведет системный звук по умолчанию.
"ios_sound_off": true, // опционально. Включить/выключить звук, установленный полем "ios_sound".
"ios_ttl": 3600, // опционально. Параметр времени жизни - максимальное время жизни сообщения в секундах.
"ios_silent": 1, // опционально. Включает тихие уведомления (игнорирует "sound" и "content").
"ios_category_id": "1", // опционально. ID категории iOS 8 из Pushwoosh.
"ios_root_params": { // опционально. Параметры корневого уровня для словаря aps.
"aps": {
"content-available": "0", // опционально. Установите "1" для отправки тихого push-уведомления и "0" для обычного.
"mutable-content": 1 // обязательно для медиа-вложений в iOS 10+.
},
"data": {} // опционально. Пользовательские данные, макс. 4 КБ
},
"ios_attachment": "URL", // опционально. Вставить медиа-контент в уведомление.
"ios_thread_id": "some thread id", // опционально. Идентификатор для группировки связанных уведомлений.
// Сообщения с одинаковым ID потока будут сгруппированы
// на экране блокировки и в Центре уведомлений.
"ios_critical": true, // опционально. Помечает уведомление iOS как критическое оповещение,
// которое воспроизводит звук, даже если на устройстве выключен звук или
// включен режим "Не беспокоить".
"ios_category_custom": "category", // опционально. Пользовательская категория APNS.
"ios_interruption_level": "active", // опционально. Одно из "passive", "active", "time-sensitive",
// "critical". Указывает на важность и
// время доставки уведомления. Подробности см. в
// руководстве по одноразовым push-уведомлениям.
"apns_trim_content": 1 // опционально. (0|1) Обрезает слишком длинные строки контента многоточием.
}]
}
}

Параметры Android

Anchor link to
Example
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"android_header": { // опционально. Заголовок уведомления Android.
"en": "header"
},
"android_content": { // опционально. Контент уведомления Android.
"en": "content"
},
"android_root_params": { // опционально. Пользовательский объект ключ-значение.
"key": "value", // Параметры корневого уровня для получателей полезной нагрузки Android.
"CancelID": 12345678 // опционально. Отменяет push-уведомление с
}, // указанным ID сообщения (получите ID из Истории сообщений)
"android_sound": "soundfile", // опционально. Без расширения файла. Если оставить пустым,
// устройство воспроизведет системный звук по умолчанию.
"android_sound_off": true, // опционально. Включить/выключить звук, установленный полем "android_sound".
"android_icon": "icon.png", // опционально.
"android_custom_icon": "URL.png", // опционально. Полный URL-адрес файла изображения.
"android_banner": "URL.png", // опционально. Полный URL-адрес файла изображения.
"android_badges": 5, // опционально. Число на иконке приложения Android.
// Используйте "+n" или "-n", чтобы увеличить/уменьшить значение на n.
"android_gcm_ttl": 3600, // опционально. Параметр времени жизни — максимальное время жизни сообщения в секундах.
"android_vibration": 0, // опционально. Принудительная вибрация Android для высокоприоритетных push-уведомлений.
"android_led": "#rrggbb", // опционально. HEX-код цвета светодиода, устройство постарается подобрать наиболее близкий цвет.
"android_priority": -1, // опционально. Устанавливает параметр "importance" для устройств с
// Android 8.0 и выше, а также параметр "priority"
// для устройств с Android 7.1 и ниже. Устанавливает
// уровень прерывания для канала уведомлений или конкретного
// уведомления. Допустимые значения: -2, -1, 0, 1, 2.
"android_delivery_priority": "normal", // опционально. "normal" или "high".
// Включает доставку уведомлений, когда
// устройство находится в режиме энергосбережения.
"android_ibc": "#RRGGBB", // опционально. цвет фона иконки на Lollipop, #RRGGBB,
// #AARRGGBB, "red", "black", "yellow" и т. д.
"android_silent": 1, // опционально. 0 или 1. Включить тихое уведомление.
// Игнорировать звук и контент
"android_group_id": "123" // опционально. Идентификатор для группировки связанных уведомлений. Сообщения с
// одинаковым ID потока будут сгруппированы в
// Центре уведомлений.
}]
}
}

Параметры Huawei

Huawei
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"huawei_android_header": { // опционально. Объект ИЛИ строка. Заголовок уведомления
"en": "header"
},
"huawei_android_content": { // опционально. Объект ИЛИ строка. Контент уведомления
"en": "content"
},
"huawei_android_badges": true, // опционально.
"huawei_android_silent": 0, // опционально. 0 или 1. Включить тихое уведомление.
// Игнорировать звук и контент
"huawei_android_icon": "URL.png", // опционально.
"huawei_android_led": "#FF0011", // опционально. HEX-код цвета светодиода, устройство постарается подобрать наиболее близкий цвет
"huawei_android_vibration": 1, // опционально. Принудительная вибрация Huawei для высокоприоритетных push-уведомлений
"huawei_android_sound": "sound.wav", // опционально. Если оставить пустым, устройство воспроизведет
// системный звук по умолчанию
"huawei_android_sound_off": true, // опционально. Включить/выключить звук, установленный
// полем "huawei_android_sound"
"huawei_android_custom_icon": "URL.png", // опционально
"huawei_android_gcm_ttl": 2400, // опционально. Параметр времени жизни - максимальное
// время жизни сообщения в секундах
"huawei_android_banner": "URL.png", // опционально. Полный URL-адрес файла изображения
"huawei_android_root_params": { // опционально. Пользовательский объект ключ-значение.
"key": "value" // Параметры корневого уровня для получателей полезной нагрузки Huawei.
},
"huawei_android_priority": 0, // опционально. Допустимые значения: -2, -1, 0, 1, 2
"huawei_android_ibc": "#0011AA", // опционально. Цвет фона иконки на Lollipop
"huawei_android_lockscreen": 1, // опционально
"huawei_android_delivery_priority": "normal", // опционально. "normal" или "high". Включает доставку
// уведомлений в режиме энергосбережения
"huawei_android_group_id": "group_id" // опционально. Идентификатор для группировки связанных уведомлений
}]
}
}

Параметры Safari

Anchor link to
Safari
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"safari_url_args": [ // обязательно, но значение может быть пустым
"firstArgument",
"secondArgument"
],
"safari_title": { // опционально. Объект ИЛИ строка. Заголовок уведомления.
"en": "content"
},
"safari_content": { // опционально. Объект ИЛИ строка. Контент уведомления.
"en": "content"
},
"safari_action": "Click here", // опционально.
"safari_ttl": 3600 // опционально. Параметр времени жизни — максимальное
// время жизни сообщения в секундах.
}]
}
}

Параметры Chrome

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"chrome_title": { // опционально. Объект ИЛИ строка. Вы можете указать заголовок
"en": "title" // сообщения в этом параметре.
},
"chrome_content": { // опционально. Объект ИЛИ строка. Вы можете указать контент
"en": "content" // сообщения в этом параметре.
},
"chrome_icon": "URL.png", // опционально. Полный URL-адрес иконки или путь к файлу в ресурсах расширения
"chrome_gcm_ttl": 3600, // опционально. Параметр времени жизни – максимальное время жизни сообщения в секундах.
"chrome_duration": 20, // опционально. макс. 50 секунд. Изменяет время отображения push-уведомления в Chrome.
// Установите 0 для отображения push-уведомления до тех пор, пока пользователь не взаимодействует с ним.
"chrome_image": "image_URL", // опционально. URL-адрес большого изображения.
"chrome_root_params": { // опционально. Установите параметры, специфичные для сообщений, отправляемых в Chrome.
"key": "value"
},
"chrome_button_text1": "text1", // опционально
"chrome_button_url1": "button1_URL", // опционально. Игнорируется, если chrome_button_text1 не установлен.
"chrome_button_text2": "text2", // опционально
"chrome_button_url2": "button2_url" // опционально. Игнорируется, если chrome_button_text2 не установлен.
}]
}
}

Параметры Firefox

Anchor link to
Firefox
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"firefox_title": { // опционально. Объект ИЛИ строка. Здесь вы можете указать заголовок сообщения.
"en": "title"
},
"firefox_content": { // опционально. Объект ИЛИ строка. Здесь вы можете указать контент сообщения.
"en": "content"
},
"firefox_icon": "URL.png", // опционально. Полный URL-адрес иконки или путь к
// файлу в ресурсах расширения.
"firefox_root_params": { // опционально. Установите параметры, специфичные для сообщений, отправляемых в Firefox.
"key": "value"
}
}]
}
}

Параметры Amazon

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"adm_header": { // опционально. Объект ИЛИ строка. Здесь вы можете указать заголовок сообщения.
"en": "header"
},
"adm_content": { // опционально. Объект ИЛИ строка. Здесь вы можете указать контент сообщения.
"en": "content"
},
"adm_root_params": { // опционально. Пользовательский объект ключ-значение
"key": "value"
},
"adm_sound": "push.mp3", // опционально.
"adm_sound_off": true, // опционально. Включить/выключить звук, установленный полем "adm_sound".
"adm_icon": "icon.png", // опционально. Полный URL-адрес иконки.
"adm_custom_icon": "URL.png", // опционально.
"adm_banner": "URL.png", // опционально.
"adm_ttl": 3600, // опционально. Параметр времени жизни — максимальное время
// жизни сообщения в секундах.
"adm_priority": -1 // опционально. Приоритет push-уведомления в панели push-уведомлений Amazon,
// допустимые значения: -2, -1, 0, 1 и 2.
}]
}
}

Параметры Mac OS X

Anchor link to
Mac OS X
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"mac_title": { // опционально. Объект ИЛИ строка. Добавляет заголовок для push-уведомления.
"en": "title"
},
"mac_subtitle": { // опционально. Добавляет подзаголовок для push-уведомления.
"en": "subtitle"
},
"mac_content": { // опционально. Добавляет контент для push-уведомления.
"en": "content"
},
"mac_badges": 3, // опционально.
"mac_sound": "sound.caf", // опционально.
"mac_sound_off": true, // опционально. Включить/выключить звук, установленный полем "mac_sound".
"mac_root_params": { // опционально.
"content-available": 1
},
"mac_ttl": 3600 // опционально. Параметр времени жизни — максимальное время жизни сообщения в секундах.
}]
}
}

Параметры Windows

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // обязательный. Код приложения Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"notifications": [{
"wns_content": { // обязательно. Содержимое (XML или raw) уведомления, закодированное в base64 (MIME)
// в виде объекта ИЛИ строки
"en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==",
"de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4="
},
"wns_type": "Badge", // опционально. 'Tile' | 'Toast' | 'Badge' | 'Raw'
"wns_tag": "myTag", // опционально. Используется в политике замены плиток.
// Буквенно-цифровая строка длиной не более 16 символов.
"wns_cache": 1, // опционально. (1|0) Транслируется в значение X-WNS-Cache-Policy.
"wns_ttl": 600 // опционально. Время истечения срока действия уведомления в секундах.
}]
}
}

Ответ:

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

Трассировка сообщений API

Anchor link to

В целях балансировки нагрузки мы не сохраняем сообщения, отправленные через API с параметром “devices”, который содержит менее 10 устройств в массиве. Из-за этого такие сообщения не будут отображаться в вашей Истории сообщений.

Чтобы видеть отчеты по push-уведомлениям на этапе тестирования, используйте трассировку сообщений API. Включение этой опции позволяет вам переопределить это ограничение на 1 час и сохранять такие push-уведомления в Истории сообщений. Трассировка сообщений API автоматически отключается через 1 час.

Трассировку сообщений API можно активировать на странице Истории сообщений, нажав Начать трассировку сообщений API в правом верхнем углу.

Условия по тегам

Anchor link to

Каждое условие по тегу представляет собой массив вида [tagName, operator, operand], где

  • tagName: имя тега
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
  • operand: string | integer | array | date

Описание операторов

Anchor link to
  • EQ: значение тега равно операнду;
  • IN: значение тега пересекается с операндом (операнд всегда должен быть массивом);
  • NOTEQ: значение тега не равно операнду;
  • NOTIN: значение тега не пересекается с операндом (операнд всегда должен быть массивом);
  • GTE: значение тега больше или равно операнду;
  • LTE: значение тега меньше или равно операнду;
  • BETWEEN: значение тега больше или равно минимальному значению операнда, но меньше или равно максимальному значению операнда (операнд всегда должен быть массивом);
  • NOTSET: тег не установлен. Операнд не учитывается;
  • ANY: тег имеет любое значение. Операнд не учитывается.

Строковые теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Допустимые операнды:

  • EQ, NOTEQ: операнд должен быть строкой;
  • IN, NOTIN: операнд должен быть массивом строк, например ["значение 1", "значение 2", "значение N"];
  • NOTSET: тег не установлен. Операнд не учитывается;
  • ANY: тег имеет любое значение. Операнд не учитывается.

Целочисленные теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Допустимые операнды:

  • EQ, NOTEQ, GTE, LTE: операнд должен быть целым числом;
  • IN, NOTIN: операнд должен быть массивом целых чисел, например [значение 1, значение 2, значение N];
  • BETWEEN: операнд должен быть массивом целых чисел, например [мин_значение, макс_значение];
  • NOTSET: тег не установлен. Операнд не учитывается;
  • ANY: тег имеет любое значение. Операнд не учитывается.

Теги даты

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Допустимые операнды:

  • "YYYY-MM-DD 00:00" (строка)
  • unix timestamp 1234567890 (целое число)
  • "N days ago" (строка) для операторов EQ, BETWEEN, GTE, LTE

Логические теги

Anchor link to

Допустимые операторы: EQ, NOTSET, ANY
Допустимые операнды: 0, 1, true, false

Теги-списки

Anchor link to

Допустимые операторы: IN, NOTIN, NOTSET, ANY
Допустимые операнды: операнд должен быть массивом строк, например ["значение 1", "значение 2", "значение N"].

Сниппеты для /createMessage

Anchor link to

Примеры запросов /createMessage:

#!/bin/bash
#Использование
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` usage: api_token appid message";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='Один пуш, чтобы править всеми!'
fi;
echo -e "Ответ:"
curl --data-binary "
{\"request\":
{\"application\":\"$2\",
\"auth\":\"$1\",
\"notifications\":
[{
\"send_date\": \"now\",
\"content\": \"$MESSAGE\"
}]
}
}" \
-H "Content-type: application/json" \
"https://api.pushwoosh.com/json/1.3/createMessage"
echo "";
exit 0;

deleteMessage

Anchor link to

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

Удаляет запланированное сообщение.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
message*stringКод сообщения, полученный в запросе /createMessage.
{
"status_code": 200,
"status_message": "OK"
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // обязательный. Код сообщения, полученный в /createMessage
}
}

Коды статусов:

Код состояния HTTPstatus_codeОписание
200200Сообщение успешно удалено
200210Ошибка в аргументах. См. status_message для получения дополнительной информации
400N/AНекорректная строка запроса
500500Внутренняя ошибка
<?php
// см. https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// создает экземпляр запроса
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// вызывает веб-сервис '/deleteMessage'
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Отлично, мое сообщение было удалено!';
} else {
print 'Упс, удаление не удалось :-(';
print 'Код статуса: ' . $response->getStatusCode();
print 'Сообщение о статусе: ' . $response->getStatusMessage();
}

getMessageDetails

Anchor link to

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

Получает детали сообщения.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
message*stringКод сообщения или ID сообщения.
{
"status_code": 200,
"status_message": "OK",
"response": {
"message": {
"id": 2068991743,
"created": "2016-09-14 17:19:42",
"send_date": "2016-09-14 17:19:41",
"status": "done",
"content": {
"en": "Hello {Name|CapitalizeFirst|friend}! 🚀"
},
"platforms": "[1]",
"ignore_user_timezone": "1",
"code": "XXXX-92B4C3C5-A7F5EF70",
"data": {
"key": "value"
}
}
}
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // обязательный. код сообщения или ID сообщения
}
}

createTargetedMessage

Anchor link to

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

Создает новое целевое push-уведомление.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
devices_filter*stringСм. примечание ниже.
send_date*stringГГГГ-ММ-ДД ЧЧ:мм или ‘now’.
ignore_user_timezonebooleanЕсли не указано, для “send_date” по умолчанию используется UTC-0.
timezonestringЕсли не указано, для “send_date” по умолчанию используется UTC-0.
campaignstringКод кампании, к которой вы хотите привязать это push-уведомление.
content*stringСодержимое уведомления. Подробности см. в примере запроса.
transactionIdstringУникальный идентификатор сообщения для предотвращения дублирования сообщений в случае проблем с сетью. Хранится на стороне Pushwoosh в течение 5 минут.
linkstringСсылка, которая будет открыта, как только пользователь откроет push-уведомление.
minimize_linkinteger0 - не сокращать, 2 - bit.ly. По умолчанию = 2.
dataobjectСтрока JSON или объект JSON. Будет передан как параметр “u” в полезной нагрузке (преобразованный в строку JSON).
presetstringКод пресета.
send_rateintegerРегулирование скорости. Допустимые значения от 100 до 1000 push-уведомлений в секунду.
inbox_datestringУкажите, когда удалить сообщение из Inbox.
inbox_imagestringURL-адрес изображения, которое будет показано рядом с сообщением в Inbox.
{
"status_code": 200,
"status_message": "OK",
"response": {
"messageCode": "97B0-C7473871-2FBDFDC6"
}
}

Больше примеров ответов:

{
"status_code": 210,
"status_message": "Errors occurred while compiling filter",
"response": {
"errors": [{
"message": "Invalid tag set specification. \")\" expected.",
"type": "syntax"
}]
}
}
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // обязательный. Синтаксис объяснен ниже
"send_date": "now", // опционально. YYYY-MM-DD HH:mm ИЛИ 'now'
"ignore_user_timezone": true, // опционально.
"timezone": "America/New_York", // опционально. Если не указано, для "send_date" по умолчанию используется UTC-0.
// Больше информации https://php.net/manual/timezones.php.
"campaign": "CAMPAIGN_CODE", // опционально. Код кампании, к которой вы хотите привязать это push-уведомление.
"content": { // опционально. Объект ИЛИ строка. Для Windows используйте "wns_content".
"en": "English",
"de": "Deutsch"
},
"transactionId": "unique UUID", // опционально. Уникальный идентификатор сообщения для предотвращения дублирования сообщений
// в случае проблем с сетью. Хранится на стороне
// Pushwoosh в течение 5 минут.
"rich_media": "XXXXX-XXXXX", // опционально. Скопируйте код Rich Media из адресной строки
// страницы редактора Rich Media в Панели управления Pushwoosh.
"link": "https://google.com", // опционально. Для диплинков добавьте "minimize_link": 0
"minimize_link": 0, // опционально. 0 — не сокращать, 2 — bitly. По умолчанию = 2.
// Сокращатель URL-адресов Google отключен с 30 марта 2019 года.
// Обратите внимание, что у сервисов сокращения ссылок есть ограничения
// на количество вызовов.
"data": { // опционально. Строка JSON или объект JSON.
"key": "value" // Будет передан как параметр "u" в полезной нагрузке
}, // (преобразованный в строку JSON).
"preset": "XXXXX-XXXXX", // опционально. Код пресета для push-уведомлений из вашей Панели управления.
"send_rate": 100, // опционально. Регулирование скорости. Допустимые значения от 100 до 1000 push-уведомлений/секунду.
"dynamic_content_placeholders": { // опционально. Плейсхолдеры для динамического контента вместо тегов устройства.
"firstname": "John",
"lastname": "Doe"
},
// Чтобы сохранить сообщение в Inbox через API, используйте "inbox_date" или "inbox_image".
// Сообщение сохраняется при использовании хотя бы одного из этих параметров.
"inbox_image": "Inbox image URL", // опционально. Изображение, которое будет показано рядом с сообщением.
"inbox_date": "2017-02-02" // опционально. Укажите, когда удалить сообщение из Inbox.
// Сообщение будет удалено из Inbox в 00:00:01 UTC
// указанной даты, поэтому предыдущая дата является последним
// днем, когда пользователь может видеть сообщение в своем Inbox.
// Если не указано, датой удаления по умолчанию является следующий
// день после даты отправки.
}
}

Основы очень просты — все фильтры выполняются на наборах сущностей.

Наборы

Anchor link to

Наборы определяются как:

1. Устройства, подписанные на конкретное приложение (A);
2. Устройства, которые соответствуют указанным значениям тегов (T) или значению тега, специфичному для приложения (AT);\

Синтаксис

Anchor link to

Давайте рассмотрим несколько примеров в соответствии с приведенным выше списком.

Таргетинг на подписчиков приложения

Anchor link to

Фильтр “A” определяет набор устройств, подписанных на конкретное приложение:

A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])

где

  • “XXXXX-XXXXX” – код приложения Pushwoosh
  • [“iOS”, “Android”, …] – массив целевых платформ. Если параметр опущен, сообщение будет отправлено на все платформы, доступные для этого приложения.

Фильтрация по значениям тегов

Anchor link to

Фильтр “T” определяет набор устройств, которым присвоены указанные значения тегов.

T(\"Age\", IN, [17,20])

Определяет набор устройств, у которых тег “age” имеет одно из следующих значений: 17, 18, 19, 20.

Типы тегов и операторы

Anchor link to

Очень важно понимать, что теги являются общими для всех приложений, и это представляет собой очень мощный инструмент для сегментации и фильтрации целевых пользователей без привязки к конкретному приложению.

Тег может быть одного из трех различных типов: Строка, Целое число, Список. Тип тега определяет, какие операторы вы можете использовать для конкретного тега.

Строковые теги

Anchor link to

Применимые операторы:

  • EQ – нацеливается на устройства с указанным значением тега
  • IN – нацеливается на устройства с любым из указанных значений тегов
  • NOTIN – нацеливается на устройства без указанных значений тегов
  • NOTEQ – нацеливается на устройства со значением тега, не равным указанному
  • NOTSET – нацеливается на устройства без значения для указанного тега
  • ANY – нацеливается на устройства с любым значением, установленным для указанного тега

Примеры:

T (\"Age\", EQ, 30) – фильтрует пользователей в возрасте 30 лет

T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – фильтрует пользователей, которые выбрали красный, зеленый или синий в качестве своего любимого цвета.

T (\"Name", NOTSET, \"\") – нацеливается на устройства без значения для тега Name.

Вы можете использовать числовые значения со строковыми тегами, но такие значения будут преобразованы в строку.

Целочисленные теги

Anchor link to

Применимые операторы:

  • GTE – больше или равно указанному значению
  • LTE– меньше или равно указанному значению
  • EQ – равно указанному значению
  • BETWEEN – между минимальным и максимальным указанными значениями
  • IN – любое из указанных значений
  • NOTIN – нет указанных значений, присвоенных устройству
  • NOTEQ – устройства со значением тега, не равным указанному
  • NOTSET – устройства без значения для указанного тега
  • ANY – устройства с любым значением, установленным для указанного тега

Примеры:

T (\"Level\", EQ, 14) – фильтрует пользователей только на 14 уровне.

T (\"Level\", BETWEEN, [1,5) – фильтрует пользователей на 1, 2, 3, 4 и 5 уровнях.

T (\"Level", GTE, 29) – нацеливается на пользователей, достигших как минимум 29 уровня.

Теги-списки

Anchor link to

Применимые операторы:

  • IN – устройства с любым из указанных значений тегов

Пример: T("Category", IN, ["breaking_news","business","politics"])

Теги даты

Anchor link to

Применимые операторы:

  • GTE – больше или равно указанному значению
  • LTE– меньше или равно указанному значению
  • EQ – равно указанному значению
  • BETWEEN – между минимальным и максимальным указанными значениями
  • NOTEQ – устройства со значением тега, не равным указанному
  • NOTSET – устройства без значения для указанного тега
  • ANY – устройства с любым значением, установленным для указанного тега

Примеры:

AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])

AT("7777D-322A7","Last Application Open", GTE, "90 days ago")

Операции

Anchor link to
  • “+” – объединяет два набора (эквивалентно ИЛИ)
  • “*” – пересекает два набора (эквивалентно И)
  • “\” – вычитает один набор из другого (эквивалентно НЕ)

Все операции левоассоциативны. “+” и “*” имеют одинаковый приоритет. “\” имеет более высокий приоритет. Вы можете использовать скобки для определения приоритетов вычислений.

Обратите внимание, что операция “\” не является коммутативной. A("12345-12345") \ A("67890-67890") не то же самое, что A("67890-67890") \ A("12345-12345").

getPushHistory

Anchor link to

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

Получает историю сообщений с деталями push-уведомлений.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
limitMessagesintegerОграничивает количество сообщений в ответе. Возможные значения от 10 до 1000.
sourcestringИсточник истории push-уведомлений. Может быть null или: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”.
searchBystringВозможные значения для поиска. Может быть null или: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”.
valuestringЗначение для поиска, установленное в соответствии с полем “searchBy”.
lastNotificationIDstringИспользуется для постраничной навигации. Последний messageId из предыдущего вызова /getPushHistory. См. подробности ниже.
{
"status_code": 200,
"status_message": "OK",
"response": {
"rows": [{
"id": 10191611434,
"code": "8071-07AD1171-77238AD1",
"createDate": "2020-09-14 12:26:21",
"sendDate": "2020-09-14 12:26:21",
"content": {
"en": "Hello!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": "E3A64-A5F3C",
"filter_conditions": "#In-app Purchase(≠0)",
"filter_name": "Purchased something",
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": null,
"open": {
"C90C0-0E786": {
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"IOS": 1
}
},
"ctr": {
"C90C0-0E786": 0
}
}, {
"id": 10191609202,
"code": "41CA-83F8E0D7-7A63822B",
"createDate": "2020-09-14 12:25:55",
"sendDate": "2020-09-14 12:25:55",
"content": {
"en": "Hi!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": null,
"filter_conditions": null,
"filter_name": null,
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": {
"2D732-BB981": "News"
},
"open": {
"C90C0-0E786": {
"CHROME": 0,
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"CHROME": 1,
"IOS": 2
}
},
"ctr": {
"C90C0-0E786": 0
}
}]
}
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"source": null, // опционально. Возможные значения: null, "CP", "API", "GeoZone",
// "RSS", "AutoPush", "A/B Test"
"searchBy": "applicationCode", // опционально. Возможные значения: "", "notificationID",
// "notificationCode", "applicationCode", "campaignCode"
"value": "C8717-703F2", // опционально. Значение для поиска, установленное в соответствии с полем "searchBy".
"lastNotificationID": 0, // опционально. Используется для постраничной навигации. Последний messageId из
// предыдущего вызова /getPushHistory. См. подробности ниже.
"limitMessages": 1000 // опционально. Возможное значение от 10 до 1000.
}
}

Этот метод вернет 1000 сообщений из аккаунта, отсортированных по Id сообщения. Чтобы получить вторую страницу, укажите последний Id сообщения из предыдущего ответа в параметре lastNotificationId.

Типы данных ответа

Anchor link to
id -- int | 0
code -- string
createDate -- string (date: %Y-%m-%d %H:%M:%S)
sendDate -- string (date: %Y-%m-%d %H:%M:%S)
content -- array ( dict {lang: value} | list [])
title -- array ( dict {lang: value} | list [])
subtitle -- array ( dict {lang: value} | list [])
url -- string
ios_title -- string | array ( dict {lang: value} ) | null
ios_subtitle -- string | array ( dict {lang: value} ) | null
ios_root_params -- dict (JSON) | null
android_header -- string | array ( dict {lang: value} ) | null
android_root_params -- dict (JSON) | null
conditions -- list (JSON) | null
conditions_operator -- string | null
filter_code -- string | null
filter_name -- string | null
filter_conditions -- string | null
geozone -- string | null
campaignId -- string | ""
campaignName -- string | ""
subscription_segments (obsolete) -- list (JSON) | null
data -- dict (JSON) | null
open -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}
sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}
ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}
errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}

cancelMessage

Anchor link to

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

Отменяет запланированное сообщение.

Тело запроса

Anchor link to
ИмяТипОписание
auth*stringТокен доступа к API из Панели управления Pushwoosh.
message*stringКод сообщения, полученный в ответе /createMessage.
{
"status_code":200,
"status_message":"OK"
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // обязательный. Токен доступа к API из Панели управления Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // обязательный. Код сообщения, полученный в ответе /createMessage
}
}

Коды статусов:

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