Zum Inhalt springen

Messages API

createMessage Veraltet

Anchor link to

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

Erstellt eine neue Push-Benachrichtigung.

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
application*stringPushwoosh-Anwendungscode
notifications*arrayJSON-Array mit Nachrichtenparametern. Details finden Sie im Anforderungsbeispiel unten.
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

Anforderungsbeispiel

Anchor link to
Beispiel
{
"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, treated as transactional: delivered to everyone.
// Marketing messages are not delivered to control group members.
// 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.
}]
}
}

Anforderungsbeispiel für VoIP-Benachrichtigungen

Anchor link to

Pushwoosh unterstützt Anrufbenachrichtigungen im VoIP-Stil für iOS und Android.
Unten finden Sie Beispiel-API-Anfragen für createMessage für jede Plattform.

Beispiel
{
"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".
}
}
]
}
}
Beispiel
{
"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".
}
}
]
}
}

Plattformspezifische Parameter

Anchor link to

iOS-Parameter

Anchor link to
Beispiel
{
"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-Parameter

Anchor link to
Beispiel
{
"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.
}]
}
}

Huawei-Parameter

Huawei
{
"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-Parameter

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-Parameter

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-Parameter

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-Parameter

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-Parameter

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-Parameter

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.
}]
}
}

Antwort:

HTTP-Statuscodestatus_codeBeschreibung
200200Nachricht erfolgreich erstellt
200210Argumentfehler. Weitere Informationen finden Sie in status_message
400N/AFehlerhafte Anforderungszeichenfolge
500500Interner Fehler

API-Messaging-Verfolgung

Anchor link to

Aus Gründen des Lastausgleichs speichern wir keine Nachrichten, die über die API mit dem Parameter „devices“ gesendet werden, der weniger als 10 Geräte in einem Array enthält. Aus diesem Grund werden solche Nachrichten nicht in Ihrem Nachrichtenverlauf angezeigt.

Um Push-Berichte während der Testphase zu sehen, verwenden Sie die API-Messaging-Verfolgung. Wenn Sie diese Option EINschalten, können Sie dieses Limit für 1 Stunde überschreiben und solche Pushes im Nachrichtenverlauf speichern. Die API-Messaging-Verfolgung schaltet sich nach 1 Stunde automatisch AUS.

Die API-Messaging-Verfolgung kann auf der Seite Nachrichtenverlauf aktiviert werden, indem Sie oben rechts auf API-Messaging-Verfolgung starten klicken.

Tag-Bedingungen

Anchor link to

Jede Tag-Bedingung ist ein Array wie [tagName, operator, operand], wobei

  • tagName: Name eines Tags
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
  • operand: string | integer | array | date

Operatorbeschreibung

Anchor link to
  • EQ: Tag-Wert ist gleich dem Operanden;
  • IN: Tag-Wert überschneidet sich mit dem Operanden (Operand muss immer ein Array sein);
  • NOTEQ: Tag-Wert ist nicht gleich einem Operanden;
  • NOTIN: Tag-Wert überschneidet sich nicht mit dem Operanden (Operand muss immer ein Array sein);
  • GTE: Tag-Wert ist größer oder gleich dem Operanden;
  • LTE: Tag-Wert ist kleiner oder gleich dem Operanden;
  • BETWEEN: Tag-Wert ist größer oder gleich dem min-Operandenwert, aber kleiner oder gleich dem max-Operandenwert (Operand muss immer ein Array sein);
  • NOTSET: Tag nicht gesetzt. Operand wird nicht berücksichtigt;
  • ANY: Tag hat einen beliebigen Wert. Operand wird nicht berücksichtigt.

String-Tags

Anchor link to

Gültige Operatoren: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Gültige Operanden:

  • EQ, NOTEQ: Operand muss eine Zeichenfolge sein;
  • IN, NOTIN: Operand muss ein Array von Zeichenfolgen sein, wie ["value 1", "value 2", "value N"];
  • NOTSET: Tag nicht gesetzt. Operand wird nicht berücksichtigt;
  • ANY: Tag hat einen beliebigen Wert. Operand wird nicht berücksichtigt.

Integer-Tags

Anchor link to

Gültige Operatoren: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Gültige Operanden:

  • EQ, NOTEQ, GTE, LTE: Operand muss eine ganze Zahl sein;
  • IN, NOTIN: Operand muss ein Array von ganzen Zahlen sein, wie [value 1, value 2, value N];
  • BETWEEN: Operand muss ein Array von ganzen Zahlen sein, wie [min_value, max_value];
  • NOTSET: Tag nicht gesetzt. Operand wird nicht berücksichtigt;
  • ANY: Tag hat einen beliebigen Wert. Operand wird nicht berücksichtigt.

Datums-Tags

Anchor link to

Gültige Operatoren: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Gültige Operanden:

  • "YYYY-MM-DD 00:00" (string)
  • Unix-Zeitstempel 1234567890 (integer)
  • "N days ago" (string) für die Operatoren EQ, BETWEEN, GTE, LTE

Boolesche Tags

Anchor link to

Gültige Operatoren: EQ, NOTSET, ANY
Gültige Operanden: 0, 1, true, false

Listen-Tags

Anchor link to

Gültige Operatoren: IN, NOTIN, NOTSET, ANY
Gültige Operanden: Operand muss ein Array von Zeichenfolgen sein, wie ["value 1", "value 2", "value N"].

/createMessage-Snippets

Anchor link to

Beispiel /createMessage-Anfragen:

#!/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

Löscht eine Nachricht, unabhängig davon, ob sie noch geplant ist oder bereits gesendet wurde. Bei einer geplanten Nachricht wird diese auch sofort aus dem Nachrichtenverlauf entfernt – bei einer bereits gesendeten Nachricht beachten Sie bitte den folgenden Warnhinweis.

Nachfolgende Sendungen, die aus der Nachricht mit Erneut an Nicht-Öffner senden erstellt wurden, sind nicht betroffen – löschen oder stornieren Sie jede davon separat.

Verwenden Sie stattdessen /cancelMessage, wenn Sie den Versand stoppen, die Nachricht aber mit dem Status canceled im Nachrichtenverlauf behalten möchten.

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
message*stringNachrichtencode, der in der /createMessage-Anfrage erhalten wurde.
{
"status_code": 200,
"status_message": "OK"
}
Beispiel
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. Message code obtained in /createMessage
}
}

Statuscodes:

HTTP-Statuscodestatus_codeBeschreibung
200200Nachricht erfolgreich gelöscht
200210Argumentfehler, z. B. befindet sich die Nachricht noch im creating-Status. Weitere Informationen finden Sie in status_message
400N/AFehlerhafte Anforderungszeichenfolge
500500Interner Fehler
<?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

Ruft die Nachrichtendetails ab.

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
message*stringNachrichtencode oder Nachrichten-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"
}
}
}
}
Beispiel
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. message code or message ID
}
}

createTargetedMessage Veraltet

Anchor link to

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

Erstellt eine neue gezielte Push-Benachrichtigung.

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
devices_filter*stringSiehe Anmerkung unten.
send_date*stringYYYY-MM-DD HH:mm oder ‘now’.
ignore_user_timezonebooleanWenn ignoriert, ist UTC-0 Standard für “send_date”.
timezonestringWenn ignoriert, ist UTC-0 Standard für “send_date”.
campaignstringCode einer Kampagne, der Sie diese Push-Nachricht zuweisen möchten.
content*stringBenachrichtigungsinhalt. Details finden Sie im Anforderungsbeispiel.
transactionIdstringEindeutiger Nachrichtenidentifikator, um doppelte Nachrichten bei Netzwerkproblemen zu verhindern. Wird auf der Seite von Pushwoosh für 5 Minuten gespeichert.
linkstringLink, der geöffnet wird, sobald ein Benutzer eine Push-Nachricht öffnet.
minimize_linkinteger0 - nicht minimieren, 2 - bit.ly. Standard = 2.
dataobjectJSON-String oder JSON-Objekt. Wird als “u”-Parameter in der Payload übergeben (in JSON-String konvertiert).
presetstringPreset-Code.
send_rateintegerDrosselung. Gültige Werte sind von 100 bis 1000 Pushes pro Sekunde.
inbox_datestringGeben Sie an, wann eine Nachricht aus dem Posteingang entfernt werden soll.
inbox_imagestringURL des Bildes, das neben der Nachricht im Posteingang angezeigt werden soll.
{
"status_code": 200,
"status_message": "OK",
"response": {
"messageCode": "97B0-C7473871-2FBDFDC6"
}
}

Weitere Antwortbeispiele:

{
"status_code": 210,
"status_message": "Errors occurred while compiling filter",
"response": {
"errors": [{
"message": "Invalid tag set specification. \")\" expected.",
"type": "syntax"
}]
}
}
Beispiel
{
"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.
}
}

Die Grundlagen sind sehr einfach – alle Filter werden auf den Mengen von Entitäten durchgeführt.

Mengen sind definiert als:

1. Geräte, die die jeweilige App abonniert haben (A);
2. Geräte, die den angegebenen Tag-Werten (T) oder anwendungsspezifischen Tag-Werten (AT) entsprechen;\

Versuchen wir es mit einigen Beispielen gemäß der obigen Liste.

Ansprechen von App-Abonnenten

Anchor link to

Der “A”-Filter definiert eine Menge von Geräten, die eine bestimmte App abonniert haben:

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

wobei

  • “XXXXX-XXXXX” – Pushwoosh-Anwendungscode
  • [“iOS”, “Android”, …] – Array der Zielplattformen. Wenn weggelassen, wird die Nachricht an alle für diese App verfügbaren Plattformen gesendet.

Filtern nach Tag-Werten

Anchor link to

Der “T”-Filter definiert eine Menge von Geräten, denen bestimmte Tag-Werte zugewiesen sind.

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

Definiert die Menge der Geräte, bei denen das „age“-Tag auf einen der Werte 17, 18, 19, 20 gesetzt ist.

Tag-Typen und Operatoren

Anchor link to

Es ist sehr wichtig zu verstehen, dass Tags zwischen den Apps geteilt werden, und es stellt ein sehr leistungsfähiges Instrument zur Segmentierung und Filterung Ihrer Zielbenutzer dar, ohne sich an eine bestimmte App zu binden.

Der Tag kann einer von drei verschiedenen Typen sein: String, Integer, List. Der Tag-Typ definiert, welche Operatoren Sie für einen bestimmten Tag verwenden können.

String-Tags

Anchor link to

Anwendbare Operatoren:

  • EQ – zielt auf Geräte mit einem bestimmten Tag-Wert ab
  • IN – zielt auf Geräte mit einem der angegebenen Tag-Werte ab
  • NOTIN – zielt auf Geräte ohne angegebene Tag-Werte ab
  • NOTEQ – zielt auf Geräte mit einem Tag-Wert ab, der nicht einem bestimmten Wert entspricht
  • NOTSET – zielt auf Geräte ohne Wert für einen bestimmten Tag ab
  • ANY – zielt auf Geräte mit einem beliebigen Wert für einen bestimmten Tag ab

Beispiele:

T (\"Age\", EQ, 30) – filtert Benutzer im Alter von 30 Jahren

T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – filtert Benutzer, die Rot, Grün oder Blau als ihre Lieblingsfarbe gewählt haben.

T (\"Name", NOTSET, \"\") – zielt auf Geräte ohne Wert für das Name-Tag ab.

Sie können numerische Werte mit den String-Tags verwenden, aber solche Werte werden in eine Zeichenfolge konvertiert.

Integer-Tags

Anchor link to

Anwendbare Operatoren:

  • GTE – größer oder gleich einem bestimmten Wert
  • LTE– kleiner oder gleich einem bestimmten Wert
  • EQ – gleich einem bestimmten Wert
  • BETWEEN – zwischen den min- und max-angegebenen Werten
  • IN – einer der angegebenen Werte
  • NOTIN – keine angegebenen Werte einem Gerät zugewiesen
  • NOTEQ – Geräte mit einem Tag-Wert, der nicht einem bestimmten Wert entspricht
  • NOTSET – Geräte ohne Wert für einen bestimmten Tag
  • ANY – Geräte mit einem beliebigen Wert für einen bestimmten Tag

Beispiele:

T (\"Level\", EQ, 14) – filtert nur Benutzer auf Level 14.

T (\"Level\", BETWEEN, [1,5) – filtert Benutzer auf den Levels 1, 2, 3, 4 und 5.

T (\"Level", GTE, 29) – zielt auf Benutzer ab, die mindestens Level 29 erreicht haben.

Listen-Tags

Anchor link to

Anwendbare Operatoren:

  • IN – Geräte mit einem der angegebenen Tag-Werte

Beispiel: T("Category", IN, ["breaking_news","business","politics"])

Datums-Tags

Anchor link to

Anwendbare Operatoren:

  • GTE – größer oder gleich einem bestimmten Wert
  • LTE– kleiner oder gleich einem bestimmten Wert
  • EQ – gleich einem bestimmten Wert
  • BETWEEN – zwischen den min- und max-angegebenen Werten
  • NOTEQ – Geräte mit einem Tag-Wert, der nicht einem bestimmten Wert entspricht
  • NOTSET – Geräte ohne Wert für einen bestimmten Tag
  • ANY – Geräte mit einem beliebigen Wert für einen bestimmten Tag

Beispiele:

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

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

Operationen

Anchor link to
  • “+” – verbindet zwei Mengen (entspricht ODER)
  • “*” – schneidet zwei Mengen (entspricht UND)
  • “\” – subtrahiert eine Menge von einer anderen (entspricht NICHT)

Alle Operationen sind linksassoziativ. ”+” und ”*” haben die gleiche Priorität. "" hat eine höhere Priorität. Sie können Klammern verwenden, um die Prioritäten der Berechnungen zu definieren.

Beachten Sie, dass die “\”-Operation nicht kommutativ ist. A("12345-12345") \ A("67890-67890") ist nicht dasselbe wie A("67890-67890") \ A("12345-12345").

getPushHistory Veraltet

Anchor link to

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

Ruft den Nachrichtenverlauf mit Push-Details ab.

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
limitMessagesintegerBegrenzt die Anzahl der Nachrichten in einer Antwort. Mögliche Werte von 10 bis 1000.
sourcestringPush-Verlaufsquelle. Kann null oder sein: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”.
searchBystringMögliche Werte zur Suche. Kann null oder sein: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”.
valuestringSuchwert, der gemäß dem Feld “searchBy” festgelegt wird.
lastNotificationIDstringWird für die Paginierung verwendet. Letzte messageId aus dem vorherigen /getPushHistory-Aufruf. Details siehe unten.
{
"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
}
}]
}
}
Beispiel
{
"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.
}
}

Diese Methode gibt 1000 Nachrichten aus dem Konto zurück, sortiert nach Nachrichten-ID. Um die zweite Seite zu erhalten, geben Sie die letzte Nachrichten-ID der vorherigen Antwort im Parameter lastNotificationId an.

Antwortdatentypen

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

Bricht den Versand einer geplanten Nachricht ab. Die Nachricht verbleibt im Nachrichtenverlauf mit dem Status canceled. Nachfolgende Sendungen, die daraus mit Erneut an Nicht-Öffner senden erstellt wurden, werden ebenfalls abgebrochen.

Verwenden Sie stattdessen /deleteMessage, wenn Sie möchten, dass die Nachricht aus dem Nachrichtenverlauf entfernt wird (siehe den Warnhinweis dort zu bereits gesendeten Nachrichten).

Anforderungskörper

Anchor link to
NameTypBeschreibung
auth*stringAPI-Zugriffstoken aus dem Pushwoosh Control Panel.
message*stringDer Nachrichtencode, der in der /createMessage-Antwort erhalten wurde.
{
"status_code":200,
"status_message":"OK"
}
Beispiel
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. The message code obtained in /createMessage response
}
}

Statuscodes:

HTTP-Statuscodestatus_codeBeschreibung
200200Nachricht erfolgreich storniert
200210Argumentfehler. Weitere Informationen finden Sie in status_message.
400N/AFehlerhafte Anforderungszeichenfolge
500500Interner Fehler