跳到内容

消息 API

createMessage 已弃用

Anchor link to

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

创建一条新的推送通知。

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
application*stringPushwoosh 应用程序代码
notifications*array消息参数的 JSON 数组。详见下方的请求示例。
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

请求示例

Anchor link to
示例
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [{
"send_date": "now", // optional. YYYY-MM-DD HH:mm OR 'now'
"content": { // optional. object OR string.
"en": "English", // Use "wns_content" instead for Windows.
"fr": "French"
},
"title": { // optional. object OR string.
"en": "Title", // Ignored if platform-specific titles are specified
"fr": "Titre" // 'ios_title', 'android_header', etc.
}, // see the platform-specific parameters examples below.
"subtitle":{ // optional. object OR string.
"en": "Subtitle", // Ignored if platform-specific titles are specified
"fr": "Sous-titre" // 'ios_subtitle', etc.
}, // see the platform-specific parameters examples below.
"ignore_user_timezone": true, // optional.
"timezone": "America/New_York", // optional. If ignored UTC-0 is default for "send_date".
// See https://php.net/manual/timezones.php for
// supported timezones.
"campaign": "CAMPAIGN_CODE", // optional. Campaign code to which you want to
// assign this push message.
"geozone": { // optional. Send to Geozone
"lat": 22.22,
"lng": 33.33,
"range": 110
},
"rich_media": "XXXXX-XXXXX", // optional. Copy the Rich Media code from the URL bar of
// the Rich Media editor page in Pushwoosh Control Panel.
"link": "https://google.com", // optional. For deeplinks add "minimize_link": 0
"minimize_link": 0, // optional. 0 — do not minimize, 2 — bitly. Default = 2.
// Please note that shorteners have restrictions
// on a number of calls.
"data": { // optional. JSON string or JSON object, will be passed as
"key": "value" // "u" parameter in the payload (converted to JSON string).
},
"transactionId": "unique UUID", // optional. Unique message identifier to prevent duplicating
// in case of network problems. Stored on the side of
// Pushwoosh for 5 minutes.
"platforms": [ // optional. 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", // optional. Push Preset Code from your Control Panel.
// If specific params are sent in the request,
// they override preset's params.
"send_rate": 100, // optional. Throttling. Valid values are from 100 to 1000 pushes/second.
"send_rate_avoid": true, // optional. If set to true, throttling limit will not be applied to
// this specific push notification.
// Templating related, please refer to the Template Engine guide to learn more
"template_bindings": { // optional.
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tags.
"firstname": "John",
"lastname": "Doe"
},
"message_type": "marketing", // optional. "marketing" or "transactional".
// If omitted, users with PW_ControlGroup: true will not receive the message.
// Frequency capping params. Ensure that Global frequency capping is configured in the Control Panel.
// Frequency capping does not apply to transactional messages.
// In all other cases, including omitted "message_type", frequency capping applies.
"capping_days": 30, // optional. Amount of days for frequency capping (max 30 days)
"capping_count": 10, // optional. The max number of pushes that can be sent from a
// specific app to a particular device within a 'capping_days'
// period. In case the message created exceeds the
// 'capping_count' limit for a device, it won't
// be sent to that device.
"capping_exclude": true, // optional. If set to true, this push notification will not
// be counted towards the capping for future pushes.
"capping_avoid": true, // optional. If set to true, capping will not be applied to
// this specific push notification.
// To save the message to the Inbox via API, use "inbox_date" or "inbox_image".
// The message is saved when at least one of these parameters is used.
"inbox_date": "2017-02-02", // optional. Specify when to remove a message from the Inbox.
// Message will be removed from Inbox at 00:00:01 UTC
// of the date specified, so the previous date is the
// last day a user can see the message in their Inbox.
// If not specified, the default removal date is the
// next day after the send date.
"inbox_image": "Inbox image URL", // optional. The image to be shown near the message.
"inbox_days": 5, // optional. Specify when to remove a message from the
// Inbox(lifetime of an inbox message in days).
// Can be used instead of the "inbox_date" parameter.
// Up to 30 days.
"devices": [ // optional. Specify tokens or hwids to send targeted push
"hwid_XXXX" // notifications. Not more than 1000 tokens/hwids in
], // an array. If set, the message will only be sent to
// the devices on the list. Application Group for devices
// list is not allowed. iOS push tokens can only be lower case.
"to": [ // optional. For email, SMS, and similar channels. List of recipients
"email_1", "email_2" // (e.g. email addresses, phone numbers). Max 1000 items.
], // For push, use "devices" instead.
// User-centric push notifications
"users": [ // optional. If set, message will only be delivered to the
"user_XXXX" // specified user ID's (set via /registerUser call).
], // If specified together with devices or to,
// the latter will be ignored. Not more than 1000 user
// ID's in an array. Application Group for users list
// is not allowed.
// Filters and conditions
"filter": "FILTER_NAME", // optional.
"conditions": [ // optional. See the remark below.
["Country", "EQ", "fr"],
["Language", "EQ", "en"]
],
"conditions_operator": "AND" // optional. Logical operator for conditions arrays.
// Possible values: AND | OR. AND is default.
}]
}
}

VoIP 通知请求示例

Anchor link to

Pushwoosh 支持 iOS 和 Android 的 VoIP 风格通话通知。
下面您可以找到每个平台的 API createMessage 请求示例。

示例
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [
{
"voip_push": true, // required. Parameter is required to send out a VoIP push notification.
"ios_root_params": {
"aps": {
"mutable-content": 1 // required for iOS10+ Media attachments.
},
"callerName": "CallerName", // optional. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional. Indicates whether video calls are supported.
"supportsHolding": true, // optional. Indicates whether call holding functionality is supported.
"supportsDTMF": false, // optional. Controls Dual-Tone Multi-Frequency signal support.
"callId": "42", // optional. The unique identifier of the call to cancel.
"cancelCall": true // optional. Set to "true" to cancel the call with the specified "callId".
}
}
]
}
}
示例
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [
{
"voip_push": true, // required. Parameter is required to send out a VoIP push notification.
"android_root_params": {
"callerName": "callerName", // optional. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional. Indicates whether video calls are supported.
"callId": 42, // optional. The unique identifier of the call to cancel.
"cancelCall": true // optional. Set to "true" to cancel the call with the specified "callId".
}
}
]
}
}

平台特定参数

Anchor link to

iOS 参数

Anchor link to
示例
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"ios_title": { // optional. Object OR string. Adds iOS specific title for push notification.
"en": "title"
},
"ios_subtitle": { // optional. Object OR string. Adds iOS specific subtitle for push notification.
"en": "subtitle"
},
"ios_content": { // optional. Object OR string. Adds iOS specific content for push notification.
"en": "content"
},
"ios_badges": 5, // optional. iOS application badge number.
// Use "+n" or "-n" to increment/decrement the badge value by n.
"ios_sound": "sound file.wav", // optional. Sound file name in the main bundle of application.
// If left empty, the device will produce a default system sound.
"ios_sound_off": true, // optional. Enable/disable sound set by "ios_sound" field.
"ios_ttl": 3600, // optional. Time to live parameter - maximum message lifespan in seconds.
"ios_silent": 1, // optional. Enables silent notifications (ignore "sound" and "content").
"ios_category_id": "1", // optional. iOS8 category ID from Pushwoosh.
"ios_root_params": { // optional. Root level parameters to the aps dictionary.
"aps": {
"content-available": "0", // optional. Set "1" to send a silent push and "0" for regular push.
"mutable-content": 1 // required for iOS10+ Media attachments.
},
"callerName": "CallerName", // optional VoIP parameter. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional VoIP parameter. Indicates whether video calls are supported.
"supportsHolding": true, // optional VoIP parameter. Indicates whether call holding functionality is supported.
"supportsDTMF": false, // optional VoIP parameter. Controls Dual-Tone Multi-Frequency signal support.
"data": {} // optional User supplied data, max of 4KB
},
"ios_attachment": "URL", // optional. Insert media content in notification.
"ios_thread_id": "some thread id", // optional. Identifier to group related notifications.
// Messages with the same thread ID will be grouped
// on the lock screen and in the Notification Center.
"ios_critical": true, // optional. Marks iOS notification as a critical alert
// playing sound even if a device is muted or
// Do Not Disturb mode is on.
"ios_category_custom": "category", // optional. Custom APNS category.
"ios_interruption_level": "active", // optional. One of "passive", "active", "time-sensitive",
// "critical". Indicates the importance and
// delivery timing of a notification. Refer to the
// One-time push guide for details.
"apns_collapse_id": "promo", // optional. APNs collapse identifier. Notifications with the same
// apns_collapse_id replace each other on the device.
"apns_trim_content": 1 // optional. (0|1) Trims the exceeding content strings with ellipsis.
}]
}
}

Android 参数

Anchor link to
示例
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"android_header": { // optional. Android notification header.
"en": "header"
},
"android_content": { // optional. Android notification content.
"en": "content"
},
"android_root_params": { // optional. Custom key-value object.
"key": "value", // Root level parameters for the android payload recipients.
"CancelID": 12345678, // optional. Cancels the push notification with the
"voip": true, // required VoIP parameter. Parameter is required to send out VoIP push notifications.
"callerName": "callerName", // optional VoIP parameter. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional VoIP parameter. Indicates whether video calls are supported.
}, // specified Message ID (get the ID from the Message History)
"android_sound": "soundfile", // optional. No file extension. If left empty,
// the device will produce a default system sound.
"android_sound_off": true, // optional. Enable/disable sound set by "android_sound" field
"android_icon": "icon.png", // optional.
"android_custom_icon": "URL.png", // optional. Full URL to the image file.
"android_banner": "URL.png", // optional. Full URL to the image file.
"android_badges": 5, // optional. Android application icon badge number.
// Use "+n" or "-n" to increment/decrement the badge value by n.
"android_gcm_ttl": 3600, // optional. Time to live parameter — maximum message lifespan in seconds.
"android_vibration": 0, // optional. Android force-vibration for high-priority pushes.
"android_led": "#rrggbb", // optional. LED hex color, device will do its best approximation.
"android_priority": -1, // optional. Sets the "importance" parameter for devices with
// Android 8.0 and higher, as well as the "priority" parameter
// for devices with Android 7.1 and lower. Establishes the
// interruption level of a notification channel or a particular
// notification. Valid values are -2, -1, 0, 1, 2.
"android_delivery_priority": "normal", // optional. "normal" or "high".
// Enables notification’s delivery when the
// device is in the power saving mode.
"android_ibc": "#RRGGBB", // optional. icon background color on Lollipop, #RRGGBB,
// #AARRGGBB, "red", "black", "yellow", etc.
"android_silent": 1, // optional. 0 or 1. Enable silent notification.
// Ignore sound and content
"android_group_id": "123", // optional. Identifier to group related notifications. Messages with
// the same thread ID will be grouped in
// the Notification Center.
"android_collapse_key": "promo" // optional. FCM collapse key. Notifications with the same
// collapse key replace each other while the device is offline.
}]
}
}

华为参数

华为
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"huawei_android_header": { // optional. Object OR string. Notification title
"en": "header"
},
"huawei_android_content": { // optional. Object OR string. Notification content
"en": "content"
},
"huawei_android_badges": true, // optional.
"huawei_android_silent": 0, // optional. 0 or 1. Enable silent notification.
// Ignore sound and content
"huawei_android_icon": "URL.png", // optional.
"huawei_android_led": "#FF0011", // optional. LED hex color, device will do its best approximation
"huawei_android_vibration": 1, // optional. Huawei force-vibration for high-priority pushes
"huawei_android_sound": "sound.wav", // optional. If left empty, the device will produce
// a default system sound
"huawei_android_sound_off": true, // optional. Enable/disable sound set by
// "huawei_android_sound" field
"huawei_android_custom_icon": "URL.png", // optional
"huawei_android_gcm_ttl": 2400, // optional. Time to live parameter - maximum
// message lifespan in seconds
"huawei_android_banner": "URL.png", // optional. Full path URL to the image file
"huawei_android_root_params": { // optional. Custom key-value object.
"key": "value" // Root-level parameters for Huawei payload recipients.
},
"huawei_android_priority": 0, // optional. Valid values: -2, -1, 0, 1, 2
"huawei_android_ibc": "#0011AA", // optional. Icon background color on Lollipop
"huawei_android_lockscreen": 1, // optional
"huawei_android_delivery_priority": "normal", // optional. "normal" or "high". Enables notification
// delivery in power saving mode
"huawei_android_group_id": "group_id" // optional. Identifier to group related notifications
}]
}
}

Safari 参数

Anchor link to
Safari
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"safari_url_args": [ // required, but the value may be empty
"firstArgument",
"secondArgument"
],
"safari_title": { // optional. Object OR string. Title of the notification.
"en": "content"
},
"safari_content": { // optional. Object OR string. Content of the notification.
"en": "content"
},
"safari_action": "Click here", // optional.
"safari_ttl": 3600 // optional. Time to live parameter — the maximum
// lifespan of a message in seconds.
}]
}
}

Chrome 参数

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"chrome_title": { // optional. Object OR string. You can specify the header
"en": "title" // of the message in this parameter.
},
"chrome_content": { // optional. Object OR string. You can specify the content
"en": "content" // of the message in this parameter.
},
"chrome_icon": "URL.png", // optional. Full URL to the icon or extension resources file path
"chrome_gcm_ttl": 3600, // optional. Time to live parameter – maximum message lifespan in seconds.
"chrome_duration": 20, // optional. max 50 seconds. Changes chrome push display time.
// Set to 0 to display push until user interacts with it.
"chrome_image": "image_URL", // optional. URL to large image.
"chrome_root_params": { // optional. Set parameters specific to messages sent to Chrome.
"key": "value"
},
"chrome_button_text1": "text1", // optional
"chrome_button_url1": "button1_URL", // optional. Ignored if chrome_button_text1 is not set.
"chrome_button_text2": "text2", // optional
"chrome_button_url2": "button2_url" // optional. Ignored if chrome_button_text2 is not set.
}]
}
}

Firefox 参数

Anchor link to
Firefox
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"firefox_title": { // optional. Object OR string. You can specify message header here.
"en": "title"
},
"firefox_content": { // optional. Object OR string. You can specify message content here.
"en": "content"
},
"firefox_icon": "URL.png", // optional. Full path URL to the icon or path to the
// file in extension resources.
"firefox_root_params": { // optional. Set parameters specific to messages sent to Firefox.
"key": "value"
}
}]
}
}

Amazon 参数

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"adm_header": { // optional. Object OR string. You can specify message header here.
"en": "header"
},
"adm_content": { // optional. Object OR string. You can specify message content here.
"en": "content"
},
"adm_root_params": { // optional. Custom key-value object
"key": "value"
},
"adm_sound": "push.mp3", // optional.
"adm_sound_off": true, // optional. Enable/disable sound set by "adm_sound" field
"adm_icon": "icon.png", // optional. Full URL to the icon.
"adm_custom_icon": "URL.png", // optional.
"adm_banner": "URL.png", // optional.
"adm_ttl": 3600, // optional. Time to live parameter — the maximum message
// lifespan in seconds.
"adm_priority": -1 // optional. Priority of the push in Amazon push drawer,
// valid values are -2, -1, 0, 1 and 2.
}]
}
}

Mac OS X 参数

Anchor link to
Mac OS X
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"mac_title": { // optional. Object OR string. Adds Title for push notification.
"en": "title"
},
"mac_subtitle": { // optional. Adds subtitle for push notification.
"en": "subtitle"
},
"mac_content": { // optional. Adds content for push notification.
"en": "content"
},
"mac_badges": 3, // optional.
"mac_sound": "sound.caf", // optional.
"mac_sound_off": true, // optional. Enable/disable sound set by "mac_sound" field
"mac_root_params": { // optional.
"content-available": 1
},
"mac_ttl": 3600 // optional. Time to live parameter — maximum message lifespan in seconds.
}]
}
}

Windows 参数

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"wns_content": { // required. Content (XML or raw) of notification encoded in MIME's base64
// in form of Object OR String
"en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==",
"de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4="
},
"wns_type": "Badge", // optional. 'Tile' | 'Toast' | 'Badge' | 'Raw'
"wns_tag": "myTag", // optional. Used in Tile replacement policy.
// An alphanumeric string of no more than 16 characters.
"wns_cache": 1, // optional. (1|0) Translates into X-WNS-Cache-Policy value.
"wns_ttl": 600 // optional. Expiration time for notification in seconds.
}]
}
}

响应

HTTP 状态码status_code描述
200200消息创建成功
200210参数错误。更多信息请参见 status_message
400N/A请求字符串格式错误
500500内部错误

API 消息跟踪

Anchor link to

出于负载均衡的目的,我们不存储通过 API 发送的、在“devices”参数中包含少于 10 个设备的消息。因此,这类消息将不会显示在您的消息历史记录中。

要在测试阶段查看推送报告,请使用 API 消息跟踪。开启此选项可以_在 1 小时内覆盖此限制,并将此类推送保存在消息历史记录中_。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: 操作数必须是字符串数组,如 ["value 1", "value 2", "value N"]
  • NOTSET: 标签未设置。不考虑操作数;
  • ANY: 标签有任何值。不考虑操作数。

整数标签

Anchor link to

有效操作符:EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
有效操作数:

  • EQ, NOTEQ, GTE, LTE: 操作数必须是整数;
  • IN, NOTIN: 操作数必须是整数数组,如 [value 1, value 2, value N]
  • BETWEEN: 操作数必须是整数数组,如 [min_value, max_value]
  • NOTSET: 标签未设置。不考虑操作数;
  • ANY: 标签有任何值。不考虑操作数。

日期标签

Anchor link to

有效操作符:EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
有效操作数:

  • "YYYY-MM-DD 00:00" (字符串)
  • unix 时间戳 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
有效操作数:操作数必须是字符串数组,如 ["value 1", "value 2", "value N"]

/createMessage 代码片段

Anchor link to

示例 /createMessage 请求:

#!/bin/bash
#Usage
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` usage: api_token appid message";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='One push to rule them all!'
fi;
echo -e "Response:"
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

删除一条消息,无论它仍在计划中还是已经发送。对于计划中的消息,这也会立即将其从消息历史记录中删除——对于已发送的消息,请参阅下面的警告。

通过重新发送给未打开者从该消息创建的后续发送不受影响——请分别删除或取消它们。

如果您想停止发送但将消息保留在消息历史记录中并带有 canceled 状态,请改用 /cancelMessage

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
message*string/createMessage 请求中获得的消息代码
{
"status_code": 200,
"status_message": "OK"
}
示例
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. Message code obtained in /createMessage
}
}

状态码:

HTTP 状态码status_code描述
200200消息删除成功
200210参数错误,例如消息仍处于 creating 状态。更多信息请参见 status_message
400N/A请求字符串格式错误
500500内部错误
<?php
// see https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Great, my message has been deleted !';
} else {
print 'Oups, the deletion failed :-(';
print 'Status code : ' . $response->getStatusCode();
print 'Status message : ' . $response->getStatusMessage();
}

getMessageDetails

Anchor link to

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

检索消息详情。

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
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"
}
}
}
}
示例
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. message code or message ID
}
}

createTargetedMessage 已弃用

Anchor link to

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

创建一条新的定向推送通知。

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
devices_filter*string见下方备注。
send_date*stringYYYY-MM-DD HH:mm 或 ‘now’。
ignore_user_timezoneboolean如果忽略,“send_date” 默认为 UTC-0。
timezonestring如果忽略,“send_date” 默认为 UTC-0。
campaignstring您希望将此推送消息分配到的活动代码
content*string通知内容。详情请参见请求示例。
transactionIdstring唯一消息标识符,用于在网络问题情况下防止消息重复。在 Pushwoosh 端存储 5 分钟。
linkstring用户打开推送消息后要打开的链接。
minimize_linkinteger0 - 不最小化,2 - bit.ly。默认为 2。
dataobjectJSON 字符串或 JSON 对象。将作为 “u” 参数在有效负载中传递(转换为 JSON 字符串)。
presetstring预设代码
send_rateinteger节流。有效值为每秒 100 到 1000 次推送。
inbox_datestring指定何时从收件箱中删除消息。
inbox_imagestring在收件箱中消息旁边显示的图像 URL。
{
"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"
}]
}
}
示例
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // required. Syntax explained below
"send_date": "now", // optional. YYYY-MM-DD HH:mm OR 'now'
"ignore_user_timezone": true, // optional.
"timezone": "America/New_York", // optional. If ignored UTC-0 is default for "send_date".
// More info https://php.net/manual/timezones.php.
"campaign": "CAMPAIGN_CODE", // optional. Campaign code to which you want to assign this push message.
"content": { // optional. Object OR string. Use "wns_content" instead for Windows.
"en": "English",
"de": "Deutsch"
},
"transactionId": "unique UUID", // optional. Unique message identifier to prevent duplicating messages
// in case of network problems. Stored on the side of
// Pushwoosh for 5 minutes.
"rich_media": "XXXXX-XXXXX", // optional. Copy the Rich Media code from the URL bar of the
// Rich Media editor page in Pushwoosh Control Panel.
"link": "https://google.com", // optional. For deeplinks add "minimize_link": 0
"minimize_link": 0, // optional. 0 — do not minimize, 2 — bitly. Default = 2.
// Google URL shortener is disabled since March 30, 2019.
// Please note that shorteners have restrictions
// on a number of calls.
"data": { // optional. JSON string or JSON object.
"key": "value" // Will be passed as "u" parameter in the payload
}, // (converted to JSON string).
"preset": "XXXXX-XXXXX", // optional. Push Preset Code from your Control Panel.
"send_rate": 100, // optional. Throttling. Valid values are from 100 to 1000 pushes/second.
"dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tags.
"firstname": "John",
"lastname": "Doe"
},
// To save the message to the Inbox via API, use "inbox_date" or "inbox_image".
// The message is saved when at least one of these parameters is used.
"inbox_image": "Inbox image URL", // optional. The image to be shown near the message.
"inbox_date": "2017-02-02" // optional. Specify when to remove a message from the Inbox.
// Message will be removed from Inbox at 00:00:01 UTC of
// the date specified, so the previous date is the last
// day a user can see the message in their Inbox.
// If not specified, the default removal date is the next
// day after the send date.
}
}

基础非常简单——所有筛选都在实体的集合上执行。

集合定义为:

1. 订阅特定应用的设备 (A);
2. 匹配指定标签值 (T) 或应用特定标签值 (AT) 的设备;

让我们根据上面的列表尝试一些示例。

定向应用订阅者

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")

  • “+” – 连接两个集合(等于 OR)
  • “*” – 两个集合的交集(等于 AND)
  • “\” – 从一个集合中减去另一个集合(等于 NOT)

所有操作都是左结合的。”+” 和 ”*” 具有相同的优先级。"" 具有更高的优先级。您可以使用括号来定义计算的优先级。

请注意,“\” 操作不具有交换性。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

获取带有推送详情的消息历史记录。

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
limitMessagesinteger限制响应中的消息数量。可能的值从 10 到 1000。
sourcestring推送历史记录来源。可以为 null 或:“CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”。
searchBystring可搜索的值。可以为 null 或:“notificationID”, “notificationCode”, “applicationCode”, “campaignCode”。
valuestring根据 “searchBy” 字段设置的搜索值。
lastNotificationIDstring用于分页。上一次 /getPushHistory 调用的最后一个 messageId。详情见下文。
{
"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
}
}]
}
}
示例
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"source": null, // optional. Possible values are null, "CP", "API", "GeoZone",
// "RSS", "AutoPush", "A/B Test"
"searchBy": "applicationCode", // optional. Possible values are "", "notificationID",
// "notificationCode", "applicationCode", "campaignCode"
"value": "C8717-703F2", // optional. Search value set according to the "searchBy" field.
"lastNotificationID": 0, // optional. Used for pagination. Last messageId from the
// previous /getPushHistory call. See details below.
"limitMessages": 1000 // optional. Possible value from 10 to 1000.
}
}

此方法将返回按消息 ID 排序的账户中的 1000 条消息。要获取第二页,请在 lastNotificationId 参数中指定上一个响应的最后一条消息 ID。

响应数据类型

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

取消发送预定消息。消息将以 canceled 状态保留在消息历史记录中。通过重新发送给未打开者创建的后续发送也将被取消。

如果您希望从消息历史记录中删除该消息,请改用 /deleteMessage(请参阅那里关于已发送消息的警告)。

请求正文

Anchor link to
名称类型描述
auth*string来自 Pushwoosh 控制面板的 API 访问令牌
message*string/createMessage 响应中获得的消息代码
{
"status_code":200,
"status_message":"OK"
}
示例
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. The message code obtained in /createMessage response
}
}

状态码:

HTTP 状态码status_code描述
200200消息成功取消
200210参数错误。更多信息请参见 status_message。
400N/A请求字符串格式错误
500500内部错误