Messages API
createMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createMessage
Erstellt eine neue Push-Benachrichtigung.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| application* | string | Pushwoosh-Anwendungscode |
| notifications* | array | JSON-Array von Nachrichtenparametern. Details finden Sie im Anforderungsbeispiel unten. |
{ "status_code": 200, "status_message": "OK", "response": { "Messages": [ "C3F8-C3863ED4-334AD4F1" ] }}Anforderungsbeispiel
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode. "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel. "notifications": [{ "send_date": "now", // optional. JJJJ-MM-TT HH:mm ODER 'now' "content": { // optional. Objekt ODER String. "en": "English", // Verwenden Sie stattdessen "wns_content" für Windows. "fr": "French" }, "title": { // optional. Objekt ODER String. "en": "Title", // Wird ignoriert, wenn plattformspezifische Titel angegeben sind "fr": "Titre" // 'ios_title', 'android_header', etc. }, // siehe die Beispiele für plattformspezifische Parameter unten. "subtitle":{ // optional. Objekt ODER String. "en": "Subtitle", // Wird ignoriert, wenn plattformspezifische Titel angegeben sind "fr": "Sous-titre" // 'ios_subtitle', etc. }, // siehe die Beispiele für plattformspezifische Parameter unten. "ignore_user_timezone": true, // optional. "timezone": "America/New_York", // optional. Wenn ignoriert, ist UTC-0 Standard für "send_date". // Siehe https://php.net/manual/timezones.php für // unterstützte Zeitzonen. "campaign": "CAMPAIGN_CODE", // optional. Kampagnencode, dem Sie diese // Push-Nachricht zuweisen möchten. "geozone": { // optional. An Geozone senden "lat": 22.22, "lng": 33.33, "range": 110 }, "rich_media": "XXXXX-XXXXX", // optional. Kopieren Sie den Rich-Media-Code aus der URL-Leiste // der Rich-Media-Editor-Seite im Pushwoosh Control Panel. "link": "https://google.com", // optional. Für Deeplinks fügen Sie "minimize_link": 0 hinzu "minimize_link": 0, // optional. 0 — nicht minimieren, 2 — bitly. Standard = 2. // Bitte beachten Sie, dass Shortener Beschränkungen // für die Anzahl der Aufrufe haben. "data": { // optional. JSON-String oder JSON-Objekt, wird als "key": "value" // "u"-Parameter in der Payload übergeben (in JSON-String konvertiert). }, "transactionId": "unique UUID", // optional. Eindeutiger Nachrichtenidentifikator, um Duplizierung // im Falle von Netzwerkproblemen zu verhindern. Wird auf der Seite // von Pushwoosh für 5 Minuten gespeichert. "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 aus Ihrem Control Panel. // Wenn spezifische Parameter in der Anfrage gesendet werden, // überschreiben sie die Parameter des Presets. "send_rate": 100, // optional. Drosselung. Gültige Werte sind von 100 bis 1000 Pushes/Sekunde. "send_rate_avoid": true, // optional. Wenn auf true gesetzt, wird das Drosselungslimit nicht auf // diese spezifische Push-Benachrichtigung angewendet. // Vorlagenbezogen, bitte lesen Sie den Leitfaden zur Template-Engine für weitere Informationen "template_bindings": { // optional. "TemplatePlaceholder": "Value" }, "dynamic_content_placeholders": { // optional. Platzhalter für dynamische Inhalte anstelle von Geräte-Tags. "firstname": "John", "lastname": "Doe" }, "message_type": "marketing", // optional. "marketing" oder "transactional". // Wenn weggelassen, erhalten Benutzer mit PW_ControlGroup: true die Nachricht nicht.
// Frequenzbegrenzungsparameter. Stellen Sie sicher, dass die globale Frequenzbegrenzung im Control Panel konfiguriert ist. // Die Frequenzbegrenzung gilt nicht für transaktionale Nachrichten. // In allen anderen Fällen, einschließlich weggelassenem "message_type", gilt die Frequenzbegrenzung. "capping_days": 30, // optional. Anzahl der Tage für die Frequenzbegrenzung (max. 30 Tage) "capping_count": 10, // optional. Die maximale Anzahl von Pushes, die von einer // spezifischen App an ein bestimmtes Gerät innerhalb eines 'capping_days'- // Zeitraums gesendet werden können. Falls die erstellte Nachricht das // 'capping_count'-Limit für ein Gerät überschreitet, wird sie nicht // an dieses Gerät gesendet. "capping_exclude": true, // optional. Wenn auf true gesetzt, wird diese Push-Benachrichtigung nicht // für die Begrenzung zukünftiger Pushes gezählt. "capping_avoid": true, // optional. Wenn auf true gesetzt, wird die Begrenzung nicht auf // diese spezifische Push-Benachrichtigung angewendet.
// Um die Nachricht über die API im Posteingang zu speichern, verwenden Sie "inbox_date" oder "inbox_image". // Die Nachricht wird gespeichert, wenn mindestens einer dieser Parameter verwendet wird. "inbox_date": "2017-02-02", // optional. Geben Sie an, wann eine Nachricht aus dem Posteingang entfernt werden soll. // Die Nachricht wird um 00:00:01 UTC des angegebenen Datums // aus dem Posteingang entfernt, sodass der vorherige Tag der // letzte Tag ist, an dem ein Benutzer die Nachricht in seinem Posteingang sehen kann. // Wenn nicht angegeben, ist das Standard-Entfernungsdatum der // nächste Tag nach dem Sendedatum. "inbox_image": "Inbox image URL", // optional. Das Bild, das neben der Nachricht angezeigt werden soll. "inbox_days": 5, // optional. Geben Sie an, wann eine Nachricht aus dem // Posteingang entfernt werden soll (Lebensdauer einer Posteingangsnachricht in Tagen). // Kann anstelle des Parameters "inbox_date" verwendet werden. // Bis zu 30 Tage.
"devices": [ // optional. Geben Sie Tokens oder HWIDs an, um gezielte Push- "hwid_XXXX" // Benachrichtigungen zu senden. Nicht mehr als 1000 Tokens/HWIDs in ], // einem Array. Wenn gesetzt, wird die Nachricht nur an // die Geräte auf der Liste gesendet. Anwendungsgruppe für Geräte- // liste ist nicht erlaubt. iOS-Push-Tokens können nur in Kleinbuchstaben sein. "to": [ // optional. Für E-Mail, SMS und ähnliche Kanäle. Liste der Empfänger "email_1", "email_2" // (z.B. E-Mail-Adressen, Telefonnummern). Max. 1000 Elemente. ], // Für Push verwenden Sie stattdessen "devices". // Benutzerzentrierte Push-Benachrichtigungen "users": [ // optional. Wenn gesetzt, wird die Nachricht nur an die "user_XXXX" // angegebenen Benutzer-IDs zugestellt (gesetzt über /registerUser-Aufruf). ], // Wenn zusammen mit devices oder to angegeben, // werden letztere ignoriert. Nicht mehr als 1000 Benutzer- // IDs in einem Array. Anwendungsgruppe für Benutzerliste // ist nicht erlaubt.
// Filter und Bedingungen "filter": "FILTER_NAME", // optional. "conditions": [ // optional. Siehe die Anmerkung unten. ["Country", "EQ", "fr"], ["Language", "EQ", "en"] ], "conditions_operator": "AND" // optional. Logischer Operator für Bedingungs-Arrays. // Mögliche Werte: AND | OR. AND ist Standard. }] }}Beispiel für eine VoIP-Benachrichtigungsanforderung
Anchor link toPushwoosh unterstützt VoIP-Anrufbenachrichtigungen für iOS und Android.
Unten finden Sie Beispiel-API-createMessage-Anfragen für jede Plattform.
{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode. "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel. "notifications": [ { "voip_push": true, // erforderlich. Parameter ist erforderlich, um eine VoIP-Push-Benachrichtigung zu senden. "ios_root_params": { "aps": { "mutable-content": 1 // erforderlich für iOS10+ Medienanhänge. }, "callerName": "CallerName", // optional. Name des Anrufers. Wenn nicht angegeben, wird "unbekannter Anrufer" angezeigt. "video": true, // optional. Gibt an, ob Videoanrufe unterstützt werden. "supportsHolding": true, // optional. Gibt an, ob die Anklopffunktion unterstützt wird. "supportsDTMF": false, // optional. Steuert die Unterstützung von Dual-Tone Multi-Frequency-Signalen. "callId": "42", // optional. Der eindeutige Bezeichner des abzubrechenden Anrufs. "cancelCall": true // optional. Auf "true" setzen, um den Anruf mit der angegebenen "callId" abzubrechen. } } ] }}Android
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode. "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel. "notifications": [ { "voip_push": true, // erforderlich. Parameter ist erforderlich, um eine VoIP-Push-Benachrichtigung zu senden. "android_root_params": { "callerName": "callerName", // optional. Name des Anrufers. Wenn nicht angegeben, wird "unbekannter Anrufer" angezeigt. "video": true, // optional. Gibt an, ob Videoanrufe unterstützt werden. "callId": 42, // optional. Der eindeutige Bezeichner des abzubrechenden Anrufs. "cancelCall": true // optional. Auf "true" setzen, um den Anruf mit der angegebenen "callId" abzubrechen. } } ] }}Plattformspezifische Parameter
Anchor link toiOS-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "ios_title": { // optional. Objekt ODER String. Fügt einen iOS-spezifischen Titel für die Push-Benachrichtigung hinzu. "en": "title" }, "ios_subtitle": { // optional. Objekt ODER String. Fügt einen iOS-spezifischen Untertitel für die Push-Benachrichtigung hinzu. "en": "subtitle" }, "ios_content": { // optional. Objekt ODER String. Fügt iOS-spezifischen Inhalt für die Push-Benachrichtigung hinzu. "en": "content" }, "ios_badges": 5, // optional. iOS-Anwendungs-Badge-Nummer. // Verwenden Sie "+n" oder "-n", um den Badge-Wert um n zu erhöhen/verringern. "ios_sound": "sound file.wav", // optional. Name der Sounddatei im Haupt-Bundle der Anwendung. // Wenn leer gelassen, erzeugt das Gerät einen Standard-Systemton. "ios_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "ios_sound" festgelegten Tons. "ios_ttl": 3600, // optional. Time-to-live-Parameter - maximale Lebensdauer der Nachricht in Sekunden. "ios_silent": 1, // optional. Aktiviert stille Benachrichtigungen (ignoriert "sound" und "content"). "ios_category_id": "1", // optional. iOS8-Kategorie-ID von Pushwoosh. "ios_root_params": { // optional. Root-Level-Parameter für das aps-Dictionary. "aps": { "content-available": "0", // optional. Setzen Sie "1", um eine stille Push-Benachrichtigung zu senden, und "0" für eine reguläre Push-Benachrichtigung. "mutable-content": 1 // erforderlich für iOS10+ Medienanhänge. }, "callerName": "CallerName", // optionaler VoIP-Parameter. Name des Anrufers. Wenn nicht angegeben, wird "unbekannter Anrufer" angezeigt. "video": true, // optionaler VoIP-Parameter. Gibt an, ob Videoanrufe unterstützt werden. "supportsHolding": true, // optionaler VoIP-Parameter. Gibt an, ob die Anklopffunktion unterstützt wird. "supportsDTMF": false, // optionaler VoIP-Parameter. Steuert die Unterstützung von Dual-Tone Multi-Frequency-Signalen. "data": {} // optional. Vom Benutzer bereitgestellte Daten, max. 4 KB }, "ios_attachment": "URL", // optional. Medieninhalte in die Benachrichtigung einfügen. "ios_thread_id": "some thread id", // optional. Bezeichner zum Gruppieren verwandter Benachrichtigungen. // Nachrichten mit derselben Thread-ID werden // auf dem Sperrbildschirm und im Benachrichtigungscenter gruppiert. "ios_critical": true, // optional. Markiert die iOS-Benachrichtigung als kritischen Alarm, // der auch dann einen Ton abspielt, wenn ein Gerät stummgeschaltet ist oder // der "Nicht stören"-Modus aktiviert ist. "ios_category_custom": "category", // optional. Benutzerdefinierte APNS-Kategorie. "ios_interruption_level": "active", // optional. Einer von "passive", "active", "time-sensitive", // "critical". Gibt die Wichtigkeit und // den Zustellzeitpunkt einer Benachrichtigung an. Details finden Sie im // Leitfaden für einmalige Push-Benachrichtigungen. "apns_trim_content": 1 // optional. (0|1) Kürzt die übersteigenden Inhaltsstrings mit Ellipsen. }] }}Android-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "android_header": { // optional. Android-Benachrichtigungs-Header. "en": "header" }, "android_content": { // optional. Android-Benachrichtigungsinhalt. "en": "content" }, "android_root_params": { // optional. Benutzerdefiniertes Schlüssel-Wert-Objekt. "key": "value", // Root-Level-Parameter für die Android-Payload-Empfänger. "CancelID": 12345678, // optional. Storniert die Push-Benachrichtigung mit der "voip": true, // erforderlicher VoIP-Parameter. Der Parameter ist erforderlich, um VoIP-Push-Benachrichtigungen zu senden. "callerName": "callerName", // optionaler VoIP-Parameter. Name des Anrufers. Wenn nicht angegeben, wird "unbekannter Anrufer" angezeigt. "video": true, // optionaler VoIP-Parameter. Gibt an, ob Videoanrufe unterstützt werden. }, // angegebenen Nachrichten-ID (ID aus der Nachrichten-Historie holen) "android_sound": "soundfile", // optional. Keine Dateierweiterung. Wenn leer gelassen, // erzeugt das Gerät einen Standard-Systemton. "android_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "android_sound" festgelegten Tons "android_icon": "icon.png", // optional. "android_custom_icon": "URL.png", // optional. Vollständige URL zur Bilddatei. "android_banner": "URL.png", // optional. Vollständige URL zur Bilddatei. "android_badges": 5, // optional. Android-Anwendungssymbol-Badge-Nummer. // Verwenden Sie "+n" oder "-n", um den Badge-Wert um n zu erhöhen/verringern. "android_gcm_ttl": 3600, // optional. Time-to-live-Parameter — maximale Lebensdauer der Nachricht in Sekunden. "android_vibration": 0, // optional. Android-Vibrationserzwingung für hochpriorisierte Pushes. "android_led": "#rrggbb", // optional. LED-Hex-Farbe, das Gerät wird sein Bestes tun, um sie anzunähern. "android_priority": -1, // optional. Setzt den "importance"-Parameter für Geräte mit // Android 8.0 und höher, sowie den "priority"-Parameter // für Geräte mit Android 7.1 und niedriger. Legt die // Unterbrechungsstufe eines Benachrichtigungskanals oder einer bestimmten // Benachrichtigung fest. Gültige Werte sind -2, -1, 0, 1, 2. "android_delivery_priority": "normal", // optional. "normal" oder "high". // Ermöglicht die Zustellung der Benachrichtigung, wenn das // Gerät im Energiesparmodus ist. "android_ibc": "#RRGGBB", // optional. Symbol-Hintergrundfarbe auf Lollipop, #RRGGBB, // #AARRGGBB, "red", "black", "yellow", etc. "android_silent": 1, // optional. 0 oder 1. Stille Benachrichtigung aktivieren. // Ton und Inhalt ignorieren "android_group_id": "123" // optional. Bezeichner zum Gruppieren verwandter Benachrichtigungen. Nachrichten mit // derselben Thread-ID werden im // Benachrichtigungscenter gruppiert. }] }}Huawei-Parameter
{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "huawei_android_header": { // optional. Objekt ODER String. Benachrichtigungstitel "en": "header" }, "huawei_android_content": { // optional. Objekt ODER String. Benachrichtigungsinhalt "en": "content" }, "huawei_android_badges": true, // optional. "huawei_android_silent": 0, // optional. 0 oder 1. Stille Benachrichtigung aktivieren. // Ton und Inhalt ignorieren "huawei_android_icon": "URL.png", // optional. "huawei_android_led": "#FF0011", // optional. LED-Hex-Farbe, das Gerät wird sein Bestes tun, um sie anzunähern "huawei_android_vibration": 1, // optional. Huawei-Vibrationserzwingung für hochpriorisierte Pushes "huawei_android_sound": "sound.wav", // optional. Wenn leer gelassen, erzeugt das Gerät // einen Standard-Systemton "huawei_android_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das // Feld "huawei_android_sound" festgelegten Tons "huawei_android_custom_icon": "URL.png", // optional "huawei_android_gcm_ttl": 2400, // optional. Time-to-live-Parameter - maximale // Lebensdauer der Nachricht in Sekunden "huawei_android_banner": "URL.png", // optional. Vollständiger Pfad-URL zur Bilddatei "huawei_android_root_params": { // optional. Benutzerdefiniertes Schlüssel-Wert-Objekt. "key": "value" // Root-Level-Parameter für Huawei-Payload-Empfänger. }, "huawei_android_priority": 0, // optional. Gültige Werte: -2, -1, 0, 1, 2 "huawei_android_ibc": "#0011AA", // optional. Symbol-Hintergrundfarbe auf Lollipop "huawei_android_lockscreen": 1, // optional "huawei_android_delivery_priority": "normal", // optional. "normal" oder "high". Ermöglicht die Benachrichtigungs- // zustellung im Energiesparmodus "huawei_android_group_id": "group_id" // optional. Bezeichner zum Gruppieren verwandter Benachrichtigungen }] }}Safari-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "safari_url_args": [ // erforderlich, aber der Wert kann leer sein "firstArgument", "secondArgument" ], "safari_title": { // optional. Objekt ODER String. Titel der Benachrichtigung. "en": "content" }, "safari_content": { // optional. Objekt ODER String. Inhalt der Benachrichtigung. "en": "content" }, "safari_action": "Click here", // optional. "safari_ttl": 3600 // optional. Time-to-live-Parameter — die maximale // Lebensdauer einer Nachricht in Sekunden. }] }}Chrome-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "chrome_title": { // optional. Objekt ODER String. Sie können den Header "en": "title" // der Nachricht in diesem Parameter angeben. }, "chrome_content": { // optional. Objekt ODER String. Sie können den Inhalt "en": "content" // der Nachricht in diesem Parameter angeben. }, "chrome_icon": "URL.png", // optional. Vollständige URL zum Symbol oder Dateipfad zu den Erweiterungsressourcen "chrome_gcm_ttl": 3600, // optional. Time-to-live-Parameter – maximale Lebensdauer der Nachricht in Sekunden. "chrome_duration": 20, // optional. max. 50 Sekunden. Ändert die Anzeigezeit von Chrome-Pushes. // Auf 0 setzen, um den Push anzuzeigen, bis der Benutzer damit interagiert. "chrome_image": "image_URL", // optional. URL zu einem großen Bild. "chrome_root_params": { // optional. Setzen Sie spezifische Parameter für Nachrichten, die an Chrome gesendet werden. "key": "value" }, "chrome_button_text1": "text1", // optional "chrome_button_url1": "button1_URL", // optional. Wird ignoriert, wenn chrome_button_text1 nicht gesetzt ist. "chrome_button_text2": "text2", // optional "chrome_button_url2": "button2_url" // optional. Wird ignoriert, wenn chrome_button_text2 nicht gesetzt ist. }] }}Firefox-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "firefox_title": { // optional. Objekt ODER String. Sie können hier den Nachrichten-Header angeben. "en": "title" }, "firefox_content": { // optional. Objekt ODER String. Sie können hier den Nachrichteninhalt angeben. "en": "content" }, "firefox_icon": "URL.png", // optional. Vollständiger Pfad-URL zum Symbol oder Pfad zur // Datei in den Erweiterungsressourcen. "firefox_root_params": { // optional. Setzen Sie spezifische Parameter für Nachrichten, die an Firefox gesendet werden. "key": "value" } }] }}Amazon-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "adm_header": { // optional. Objekt ODER String. Sie können hier den Nachrichten-Header angeben. "en": "header" }, "adm_content": { // optional. Objekt ODER String. Sie können hier den Nachrichteninhalt angeben. "en": "content" }, "adm_root_params": { // optional. Benutzerdefiniertes Schlüssel-Wert-Objekt "key": "value" }, "adm_sound": "push.mp3", // optional. "adm_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "adm_sound" festgelegten Tons "adm_icon": "icon.png", // optional. Vollständige URL zum Symbol. "adm_custom_icon": "URL.png", // optional. "adm_banner": "URL.png", // optional. "adm_ttl": 3600, // optional. Time-to-live-Parameter — die maximale Lebensdauer der Nachricht // in Sekunden. "adm_priority": -1 // optional. Priorität des Pushs in der Amazon-Push-Schublade, // gültige Werte sind -2, -1, 0, 1 und 2. }] }}Mac OS X-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "mac_title": { // optional. Objekt ODER String. Fügt einen Titel für die Push-Benachrichtigung hinzu. "en": "title" }, "mac_subtitle": { // optional. Fügt einen Untertitel für die Push-Benachrichtigung hinzu. "en": "subtitle" }, "mac_content": { // optional. Fügt Inhalt für die Push-Benachrichtigung hinzu. "en": "content" }, "mac_badges": 3, // optional. "mac_sound": "sound.caf", // optional. "mac_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "mac_sound" festgelegten Tons "mac_root_params": { // optional. "content-available": 1 }, "mac_ttl": 3600 // optional. Time-to-live-Parameter — maximale Lebensdauer der Nachricht in Sekunden. }] }}Windows-Parameter
Anchor link to{ "request": { "application": "12345-67891", // erforderlich. Pushwoosh-Anwendungscode "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "notifications": [{ "wns_content": { // erforderlich. Inhalt (XML oder roh) der Benachrichtigung, kodiert in MIME's base64 // in Form von Objekt ODER String "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // optional. 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // optional. Wird in der Tile-Ersetzungsrichtlinie verwendet. // Eine alphanumerische Zeichenfolge von nicht mehr als 16 Zeichen. "wns_cache": 1, // optional. (1|0) Übersetzt in den Wert von X-WNS-Cache-Policy. "wns_ttl": 600 // optional. Ablaufzeit für die Benachrichtigung in Sekunden. }] }}Antwort:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Nachricht erfolgreich erstellt |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen |
| 400 | N/A | Fehlerhafter Anforderungsstring |
| 500 | 500 | Interner Fehler |
API-Nachrichtenverfolgung
Anchor link toAus 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 Ihrer Nachrichten-Historie angezeigt.
Um Push-Berichte während der Testphase zu sehen, verwenden Sie die API-Nachrichtenverfolgung. Wenn Sie diese Option EINschalten, können Sie dieses Limit für 1 Stunde überschreiben und solche Pushes in der Nachrichten-Historie speichern. Die API-Nachrichtenverfolgung schaltet sich nach 1 Stunde automatisch AUS.
Die API-Nachrichtenverfolgung kann auf der Seite Nachrichten-Historie aktiviert werden, indem Sie oben rechts auf API-Nachrichtenverfolgung starten klicken.
Tag-Bedingungen
Anchor link toJede 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 toGültige Operatoren: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Gültige Operanden:
- EQ, NOTEQ: Operand muss ein String sein;
- IN, NOTIN: Operand muss ein Array von Strings 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 toGü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 toGültige Operatoren: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Gültige Operanden:
"JJJJ-MM-TT 00:00"(String)- Unix-Zeitstempel
1234567890(Integer) "N days ago"(String) für die Operatoren EQ, BETWEEN, GTE, LTE
Boolesche Tags
Anchor link toGültige Operatoren: EQ, NOTSET, ANY
Gültige Operanden: 0, 1, true, false
Listen-Tags
Anchor link toGültige Operatoren: IN, NOTIN, NOTSET, ANY
Gültige Operanden: Operand muss ein Array von Strings sein wie ["value 1", "value 2", "value N"].
/createMessage Snippets
Anchor link toBeispiel /createMessage-Anfragen:
#!/bin/bash
#Verwendungif [ ! -n "$1" ] || [ ! -n "$2" ]then echo "`basename $0` usage: api_token appid message"; exit 1;fi;MESSAGE="$3";if [ -z "$3" ]thenMESSAGE='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;<?phpdefine('PW_AUTH', 'API TOKEN');define('PW_APPLICATION', 'APPLICATION CODE');define('PW_DEBUG', true);
function pwCall($method, $data) { $url = 'https://api.pushwoosh.com/json/1.3/' . $method; $request = json_encode(['request' => $data]);
$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch);
if (defined('PW_DEBUG') && PW_DEBUG) { print "[PW] request: $request"; print "[PW] response: $response"; print '[PW] info: ' . print_r($info, true); }}
pwCall('createMessage', array( 'application' => PW_APPLICATION, 'auth' => PW_AUTH, 'notifications' => array( array( 'send_date' => 'now', 'content' => 'test', 'data' => array('custom' => 'json data'), 'link' => 'https://pushwoosh.com/' ) ) ));-module(pushwoosh).-export([run/0, stop/0, sendMessage/1]).%% sendMessage Argument: Nachrichtentext %%
%% Authentifizierung & App_id %%-define(PW_AUTH, "YOUR_AUTH_TOKEN").-define(PW_APPLICATION, "YOUR_PUSHWOOSH_APP_CODE").
%% KickStart %%run() -> application:start(unicode), application:start(crypto), application:start(public_key), application:start(ssl), application:start(inets), %% HTTP-Client-Ausführlichkeitsoptionen false, verbose, debug httpc:set_options([{verbose, false}]).stop() -> application:stop(ssl), application:stop(public_key), application:stop(crypto), application:stop(inets).%% JSON Wars !encode(S) -> encode(S, [$"]).encode([], Acc) -> lists:reverse([$" | Acc]);encode([C | Cs], Acc) -> Hex = lists:flatten(io_lib:format("~4.16.0b", [C])), encode(Cs, lists:reverse(Hex) ++ "u\" ++ Acc).
sendMessage(Message_text) -> %% URL zur JSON API 1.3 Url = "https://api.pushwoosh.com/json/1.3/createMessage", EncodedMessage = encode(Message_text), {ok, Response} = httpc:request( %%Methode post, %%Anfrage {Url, [{"User-Agent", "Erlang exemple"}], "application/json; charset=UTF-8", "{\"request\":{ \"application\": \""?PW_APPLICATION"\", \"auth\": \""?PW_AUTH"\", \"notifications\": [{ \"send_date\": \"now\", \"content\": "++EncodedMessage++" }]}}"}, %%HTTP-Optionen [{ssl,[{verify, verify_none}]}, {version, "HTTP/1.0"}], %%Optionen []), io:format("And received ~p", [Response]).class PushNotification
#- PushWoosh API-Dokumentation https://www.pushwoosh.com/programming-push-notification/pushwoosh-push-notification-remote-api/ #- Zwei Methoden hier: # - PushNotification.new.notify_all(message) Benachrichtigt alle mit der gleichen Option # - PushNotification.new.notify_devices(notification_options = {}) Benachrichtigt bestimmte Geräte mit benutzerdefinierten Optionen
include HTTParty #Stellen Sie sicher, dass das HTTParty-Gem in Ihrer Gemfile deklariert ist https://github.com/jnunemaker/httparty default_params :output => 'json' format :json
def initialize #- Ändern Sie Ihre Einstellungen @auth = {:application => "00000-00000",:auth => "auth_token"} end
# PushNotification.new.notify_all("Dies ist eine Testbenachrichtigung an alle Geräte") def notify_all(message) notify_devices({:content => message}) end
# PushNotification.new.notify_device({ # :content => "TEST", # :data => {:custom_data => value}, # :devices => array_of_tokens #}) def notify_devices(notification_options = {}) #- Standardoptionen, kommentieren Sie :data oder :devices bei Bedarf aus default_notification_options = { # JJJJ-MM-TT HH:mm ODER 'now' :send_date => "now", # Objekt( sprache1: 'inhalt1', sprache2: 'inhalt2' ) ODER String :content => { :fr => "Test", :en => "Test" }, # JSON-String oder JSON-Objekt "custom": "json data" #:data => { # :custom_data => value #}, # lassen Sie dieses Feld weg (Push-Benachrichtigung wird an alle Geräte für die Anwendung zugestellt), oder geben Sie die Liste der Geräte-IDs an #:devices => {} }
#- Zusammenführen mit spezifischen Optionen final_notification_options = default_notification_options.merge(notification_options)
#- Konstruieren des endgültigen Aufrufs options = @auth.merge({:notifications => [final_notification_options]}) options = {:request => options} #- Ausführen des POST-API-Aufrufs mit HTTPARTY - :body => options.to_json ermöglicht es uns, das JSON als Objekt anstelle eines Strings zu senden response = self.class.post("https://api.pushwoosh.com/json/1.3/createMessage", :body => options.to_json,:headers => { 'Content-Type' => 'application/json' }) endend// Verwendet JSON-Klassen von https://json.org/java/
package com.arellomobile;
import org.json.*;import java.io.*;import java.net.*;
public class SendPushNotificationSample{ public static final String PUSHWOOSH_SERVICE_BASE_URL = "https://api.pushwoosh.com/json/1.3/"; private static final String AUTH_TOKEN = "YOUR_AUTH_TOKEN"; private static final String APPLICATION_CODE = "PW_APPLICATION_CODE";
public static void main(String[] args) throws JSONException, MalformedURLException { String method = "createMessage"; URL url = new URL(PUSHWOOSH_SERVICE_BASE_URL + method);
JSONArray notificationsArray = new JSONArray() .put(new JSONObject().put("send_date", "now") .put("content", "test") .put("link", "https://pushwoosh.com/"));
JSONObject requestObject = new JSONObject() .put("application", APPLICATION_CODE) .put("auth", AUTH_TOKEN) .put("notifications", notificationsArray);
JSONObject mainRequest = new JSONObject().put("request", requestObject); JSONObject response = SendServerRequest.sendJSONRequest(url, mainRequest.toString());
System.out.println("Response is: " + response); }}
class SendServerRequest{ static JSONObject sendJSONRequest(URL url, String request) { HttpURLConnection connection = null; try { connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoInput(true); connection.setDoOutput(true);
DataOutputStream writer = new DataOutputStream(connection.getOutputStream()); writer.write(request.getBytes("UTF-8")); writer.flush(); writer.close();
return parseResponse(connection); } catch (Exception e) { System.out.println("An error occurred: " + e.getMessage()); return null; } finally { if (connection != null) { connection.disconnect(); } } }
static JSONObject parseResponse(HttpURLConnection connection) throws IOException, JSONException { String line; BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) { response.append(line).append(''); } reader.close();
return new JSONObject(response.toString()); }}import json
PW_AUTH = 'API TOKEN'PW_APPLICATION_CODE = 'APPLICATION CODE'
try: # Für Python 3.0 und neuer from urllib.request import urlopen from urllib.request import Requestexcept ImportError: # Zurückgreifen auf Pythons 2 urllib2 from urllib2 import urlopen from urllib2 import Request
def pw_call(method, data): url = 'https://api.pushwoosh.com/json/1.3/' + method data = json.dumps({'request': data}) req = Request(url, data.encode('UTF-8'), {'Content-Type': 'application/json'}) try: f = urlopen(req) response = f.read() f.close() print('Pushwoosh response: ' + str(response)) except Exception as e: print ('Request error: ' + str(e))
if __name__ == '__main__': pw_call('createMessage', { 'auth': PW_AUTH, 'application': PW_APPLICATION_CODE, 'notifications': [ { 'send_date': 'now', 'content': 'test', 'data': {"custom": "json data"}, 'link': 'https://pushwoosh.com' } ] } )using System;using System.IO;using System.Net;using Newtonsoft.Json.Linq;
namespace WebApplication1{ public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string pwAuth = "YOUR_AUTH_TOKEN"; string pwApplication = "PW_APPLICATION_CODE"; JObject json = new JObject( new JProperty("application", pwApplication), new JProperty("auth", pwAuth), new JProperty("notifications", new JArray( new JObject( new JProperty("send_date", "now"), new JProperty("content", "test"), new JProperty("wp_type", "Toast"), new JProperty("wp_count", 3), new JProperty("data", new JObject( new JProperty("custom", "json data"))), new JProperty("link", "https://pushwoosh.com/"), new JProperty("conditions", new JArray( (object)new JArray("Color", "EQ", "black"))))))); PWCall("createMessage", json); } private void PWCall(string action, JObject data) { Uri url = new Uri("https://api.pushwoosh.com/json/1.3/" + action); JObject json = new JObject(new JProperty("request", data)); DoPostRequest(url, json); } private void DoPostRequest(Uri url, JObject data) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.ContentType = "text/json"; req.Method = "POST"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(data.ToString()); } HttpWebResponse httpResponse; try { httpResponse = (HttpWebResponse)req.GetResponse(); } catch (Exception exc) { throw new Exception(string.Format("Problem with {0}, {1}", url, exc.Message)); } using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); Page.Response.Write(responseText); } } }}package main
import( "fmt" "encoding/json" "net/http" "bytes" "io/ioutil")
const ( PW_APPLICATION = "APPLICATION CODE" PW_AUTH = "API TOKEN" PW_ENDPOINT = "https://api.pushwoosh.com/json/1.3/")
func pwCall(method string, data []byte) (bool) { url := PW_ENDPOINT + method request, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) request.Header.Set("Content-Type", "application/json")
client := http.Client{} response, err := client.Do(request) if err != nil { fmt.Println("Error occur: " + err.Error()) return false } defer response.Body.Close()
fmt.Println("Response Status: ", response.Status) if (response.StatusCode == 200) { body, _ := ioutil.ReadAll(response.Body) fmt.Println("Response Body: ", string(body)) return true } return false}
func main() { requestData := map[string]interface{}{ "request": map[string]interface{} { "auth": PW_AUTH, "application": PW_APPLICATION, "notifications": []interface{}{ map[string]interface{} { "send_date": "now", "content": "test", "link": "https://pushwoosh.com", }, }, }, } jsonRequest, _ := json.Marshal(requestData) requestString := string(jsonRequest) fmt.Println("Request body: " + requestString)
pwCall("createMessage", jsonRequest)}$.ajax({ type: "POST", url: "https://api.pushwoosh.com/json/1.3/createMessage", data: JSON.stringify({ "request": { "application": "APPLICATION CODE", "auth": "API TOKEN", "notifications": [{ "send_date": "now", "ignore_user_timezone": true, "content": "Hello world!" }] } }), dataType: "json"}).done(function(data) { console.log(data);});deleteMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/deleteMessage
Löscht eine geplante Nachricht.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| message* | string | Nachrichtencode, der in der /createMessage-Anfrage erhalten wurde. |
{ "status_code": 200, "status_message": "OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "message": "xxxx-xxxxxxx-xxxxxx" // erforderlich. Nachrichtencode, der in /createMessage erhalten wurde }}Statuscodes:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Nachricht erfolgreich gelöscht |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen |
| 400 | N/A | Fehlerhafter Anforderungsstring |
| 500 | 500 | Interner Fehler |
<?php// siehe https://gomoob.github.io/php-pushwoosh/delete-message.htmluse Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// erstellt eine Anforderungsinstanz$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// ruft den '/deleteMessage' Web Service auf$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) { print 'Großartig, meine Nachricht wurde gelöscht!';} else { print 'Upps, das Löschen ist fehlgeschlagen :-('; print 'Statuscode: ' . $response->getStatusCode(); print 'Statusnachricht: ' . $response->getStatusMessage();}getMessageDetails
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getMessageDetails
Ruft die Nachrichtendetails ab.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| message* | string | Nachrichtencode 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" } } }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "message": "xxxx-xxxxxxx-xxxxxx" // erforderlich. Nachrichtencode oder Nachrichten-ID }}createTargetedMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createTargetedMessage
Erstellt eine neue gezielte Push-Benachrichtigung.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| devices_filter* | string | Siehe Anmerkung unten. |
| send_date* | string | JJJJ-MM-TT HH:mm oder ‘now’. |
| ignore_user_timezone | boolean | Wenn ignoriert, ist UTC-0 Standard für “send_date”. |
| timezone | string | Wenn ignoriert, ist UTC-0 Standard für “send_date”. |
| campaign | string | Code einer Kampagne, der Sie diese Push-Nachricht zuweisen möchten. |
| content* | string | Benachrichtigungsinhalt. Details finden Sie im Anforderungsbeispiel. |
| transactionId | string | Eindeutiger Nachrichtenidentifikator, um die Duplizierung von Nachrichten bei Netzwerkproblemen zu verhindern. Wird auf der Seite von Pushwoosh für 5 Minuten gespeichert. |
| link | string | Link, der geöffnet wird, sobald ein Benutzer eine Push-Nachricht öffnet. |
| minimize_link | integer | 0 - nicht minimieren, 2 - bit.ly. Standard = 2. |
| data | object | JSON-String oder JSON-Objekt. Wird als “u”-Parameter in der Payload übergeben (in JSON-String konvertiert). |
| preset | string | Preset-Code. |
| send_rate | integer | Drosselung. Gültige Werte sind von 100 bis 1000 Pushes pro Sekunde. |
| inbox_date | string | Geben Sie an, wann eine Nachricht aus dem Posteingang entfernt werden soll. |
| inbox_image | string | URL des Bildes, das neben der Nachricht im Posteingang angezeigt werden soll. |
{ "status_code": 200, "status_message": "OK", "response": { "messageCode": "97B0-C7473871-2FBDFDC6" }}Die Anfrage kann aufgrund fehlerhafter Syntax nicht erfüllt werden.Weitere Antwortbeispiele:
{ "status_code": 210, "status_message": "Fehler beim Kompilieren des Filters", "response": { "errors": [{ "message": "Ungültige Tag-Set-Spezifikation. \")\" erwartet.", "type": "syntax" }] }}{ "status_code": 210, "status_message": "Fehler beim Kompilieren des Filters", "response": { "errors": [{ "message": "Anwendung \"11111-11111\" nicht gefunden", "type": "semantic", "near": "\"11111-11111\"" }] }}{ "status_code": 210, "status_message": "Fehler beim Kompilieren des Filters", "response": { "errors": [{ "message": "Ungültiges Zeichen \"/\" bei 1:19", "type": "lexical" }] }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // erforderlich. Syntax unten erklärt "send_date": "now", // optional. JJJJ-MM-TT HH:mm ODER 'now' "ignore_user_timezone": true, // optional. "timezone": "America/New_York", // optional. Wenn ignoriert, ist UTC-0 Standard für "send_date". // Weitere Informationen https://php.net/manual/timezones.php. "campaign": "CAMPAIGN_CODE", // optional. Kampagnencode, dem Sie diese Push-Nachricht zuweisen möchten. "content": { // optional. Objekt ODER String. Verwenden Sie stattdessen "wns_content" für Windows. "en": "English", "de": "Deutsch" }, "transactionId": "unique UUID", // optional. Eindeutiger Nachrichtenidentifikator, um die Duplizierung von Nachrichten zu verhindern // im Falle von Netzwerkproblemen. Wird auf der Seite von // Pushwoosh für 5 Minuten gespeichert. "rich_media": "XXXXX-XXXXX", // optional. Kopieren Sie den Rich-Media-Code aus der URL-Leiste der // Rich-Media-Editor-Seite im Pushwoosh Control Panel. "link": "https://google.com", // optional. Für Deeplinks fügen Sie "minimize_link": 0 hinzu "minimize_link": 0, // optional. 0 — nicht minimieren, 2 — bitly. Standard = 2. // Google URL Shortener ist seit dem 30. März 2019 deaktiviert. // Bitte beachten Sie, dass Shortener Beschränkungen // für die Anzahl der Aufrufe haben. "data": { // optional. JSON-String oder JSON-Objekt. "key": "value" // Wird als "u"-Parameter in der Payload übergeben }, // (in JSON-String konvertiert). "preset": "XXXXX-XXXXX", // optional. Push-Preset-Code aus Ihrem Control Panel. "send_rate": 100, // optional. Drosselung. Gültige Werte sind von 100 bis 1000 Pushes/Sekunde. "dynamic_content_placeholders": { // optional. Platzhalter für dynamische Inhalte anstelle von Geräte-Tags. "firstname": "John", "lastname": "Doe" },
// Um die Nachricht über die API im Posteingang zu speichern, verwenden Sie "inbox_date" oder "inbox_image". // Die Nachricht wird gespeichert, wenn mindestens einer dieser Parameter verwendet wird. "inbox_image": "Inbox image URL", // optional. Das Bild, das neben der Nachricht angezeigt werden soll. "inbox_date": "2017-02-02" // optional. Geben Sie an, wann eine Nachricht aus dem Posteingang entfernt werden soll. // Die Nachricht wird um 00:00:01 UTC des // angegebenen Datums aus dem Posteingang entfernt, sodass der vorherige Tag der letzte // Tag ist, an dem ein Benutzer die Nachricht in seinem Posteingang sehen kann. // Wenn nicht angegeben, ist das Standard-Entfernungsdatum der nächste // Tag nach dem Sendedatum. }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "devices_filter": "FILTER CONDITION", "send_date": "now", // optional. JJJJ-MM-TT HH:mm ODER 'now' "content": { // optional. Objekt ODER String. "en": "English", // Verwenden Sie stattdessen "wns_content" für Windows. "de": "Deutsch" }, "ignore_user_timezone": true, // optional. "timezone": "America/New_York", // optional. Wenn ignoriert, ist UTC-0 Standard für "send_date". // Weitere Informationen https://php.net/manual/timezones.php. "campaign": "CAMPAIGN_CODE", // optional. Kampagnencode, dem Sie diese Push-Nachricht zuweisen möchten.
// iOS-bezogene Parameter "ios_badges": 5, // optional. iOS-Anwendungs-Badge-Nummer. // Verwenden Sie "+n" oder "-n", um den Badge-Wert um n zu erhöhen/verringern. "ios_sound": "sound file.wav", // optional. Name der Sounddatei im Haupt-Bundle der Anwendung. // Wenn leer gelassen, erzeugt das Gerät keinen Ton // beim Empfang eines Pushs. "ios_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "ios_sound" festgelegten Tons. "ios_ttl": 3600, // optional. Time-to-live-Parameter — maximale Lebensdauer der Nachricht in Sekunden. "ios_silent": 1, // optional. Aktiviert stille Benachrichtigungen (ignoriert "sound" und "content"). "ios_category_id": "1", // optional. iOS8-Kategorie-ID von Pushwoosh. "ios_category_custom": "category", // optional. Benutzerdefinierte APNS-Kategorie. "ios_root_params": { // optional. Root-Level-Parameter für das aps-Dictionary. "aps": { "content-available": "0", // optional. Setzen Sie "1", um eine stille Push-Benachrichtigung zu senden, und "0" für eine reguläre Push-Benachrichtigung. "mutable-content": 1 // erforderlich für iOS10+ Medienanhänge. }, "attachment": "YOUR_ATTACHMENT_URL", // iOS10+ Medienanhang-URL. "data": {} // optional. Vom Benutzer bereitgestellte Daten, max. 4 KB }, "apns_trim_content": 1, // optional. (0|1) Kürzt die übersteigenden Inhaltsstrings mit Ellipsen. "ios_title": { // optional. Fügt einen Titel für die iOS-Push-Benachrichtigung hinzu. "en": "title" }, "ios_subtitle": { // optional. Fügt einen Untertitel für die iOS-Push-Benachrichtigung hinzu. "en": "subTitle" }, "ios_content": { // optional. Fügt Inhalt für die iOS-Push-Benachrichtigung hinzu. "en": "content" },
// Android-bezogene Parameter "android_root_params": { // optional. Benutzerdefiniertes Schlüssel-Wert-Objekt. "key": "value" // Root-Level-Parameter für die Android-Payload-Empfänger. }, "android_sound": "soundfile", // optional. Keine Dateierweiterung. Wenn leer gelassen, erzeugt das Gerät // keinen Ton beim Empfang eines Pushs. "android_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "android_sound" festgelegten Tons "android_header": { // optional. Objekt ODER String. Android-Benachrichtigungs-Header. "en": "header" }, "android_content": { // optional. Objekt ODER String. Android-Benachrichtigungsinhalt. "en": "content" }, "android_icon": "icon.png", "android_custom_icon": "URL.png", // optional. Vollständiger Pfad-URL zur Bilddatei. "android_banner": "URL.png", // optional. Vollständiger Pfad-URL zur Bilddatei. "android_badges": 5, // optional. integer. Android-Anwendungssymbol-Badge-Nummer. // Verwenden Sie "+n" oder "-n", um den Badge-Wert um n zu erhöhen/verringern. "android_gcm_ttl": 3600, // optional. Time-to-live-Parameter — maximale Lebensdauer der Nachricht in Sekunden. "android_vibration": 0, // optional. Android-Vibrationserzwingung für hochpriorisierte Pushes. "android_led": "#rrggbb", // optional. LED-Hex-Farbe, das Gerät wird sein Bestes tun, um sie anzunähern. "android_priority": -1, // optional. Setzt den "importance"-Parameter für Geräte mit Android 8.0 // und höher, sowie den "priority"-Parameter für Geräte // mit Android 7.1 und niedriger. Legt die Unterbrechungs- // stufe eines Benachrichtigungskanals oder einer bestimmten Benachrichtigung fest. // Gültige Werte sind -2, -1, 0, 1, 2. "android_delivery_priority": "normal", // optional. "normal" oder "high". Ermöglicht die Zustellung der Benachrichtigung // wenn das Gerät im Energiesparmodus ist. "android_ibc": "#RRGGBB", // optional. Symbol-Hintergrundfarbe auf Lollipop, #RRGGBB, // #AARRGGBB, "red", "black", "yellow", etc. "android_silent": 1, // optional. 0 oder 1. Stille Benachrichtigung aktivieren. // Ton und Inhalt ignorieren
// Amazon-bezogene Parameter "adm_root_params": { // optional. Benutzerdefiniertes Schlüssel-Wert-Objekt "key": "value" }, "adm_sound": "push.mp3", "adm_sound_off": true, // optional. Aktivieren/Deaktivieren des durch das Feld "adm_sound" festgelegten Tons "adm_header": { "en": "Header" }, "adm_content": { "en": "content" }, "adm_icon": "icon.png", "adm_custom_icon": "URL.png", "adm_banner": "URL.png", "adm_ttl": 3600, // optional. Time-to-live-Parameter — die maximale Lebensdauer der Nachricht // in Sekunden. "adm_priority": -1, // optional. Priorität des Pushs in der Amazon-Push-Schublade, // gültige Werte sind -2, -1, 0, 1 und 2.
// Mac OS X-bezogene Parameter "mac_badges": 3, "mac_sound": "sound.caf", "mac_sound_off": true, "mac_root_params": { "content-available": 1 }, "mac_ttl": 3600, // optional. Time-to-live-Parameter — maximale Lebensdauer der Nachricht in Sekunden. "mac_title": { // optional. Fügt einen Titel für die Push-Benachrichtigung hinzu. "en": "title" }, "mac_subtitle": { // optional. Fügt einen Untertitel für die MacOS-Push-Benachrichtigung hinzu. "en": "subtitle" }, "mac_content": { // optional. Fügt Inhalt für die MacOS-Push-Benachrichtigung hinzu. "en": "content" },
// Windows-bezogene Parameter "wns_content": { // erforderlich. Inhalt (XML oder roh) der Benachrichtigung, kodiert // in MIME's base64 in Form von Objekt ODER String "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // optional. Wird in der Tile-Ersetzungsrichtlinie verwendet. // Eine alphanumerische Zeichenfolge von nicht mehr als 16 Zeichen. "wns_cache": 1, // optional. (1|0) Übersetzt in den Wert von X-WNS-Cache-Policy. "wns_ttl": 600, // optional. Ablaufzeit für die Benachrichtigung in Sekunden.
// Safari-bezogene Parameter "safari_title": { // optional. Objekt ODER String. Titel der Benachrichtigung. "en": "title" }, "safari_content": { // optional. Objekt ODER String. Inhalt der Benachrichtigung. "en": "content" }, "safari_action": "Click here", // optional. "safari_url_args": [ // erforderlich. aber der Wert kann leer sein "firstArgument", "secondArgument" ], "safari_ttl": 3600, // optional. Time-to-live-Parameter — die maximale // Lebensdauer einer Nachricht in Sekunden.
// Chrome-bezogene Parameter "chrome_title": { // optional. Sie können den Header der Nachricht in diesem Parameter angeben. "en": "title" }, "chrome_content": { // optional. Sie können den Inhalt der Nachricht in diesem Parameter angeben. "en": "content" }, "chrome_icon": "icon_URL", // optional. Vollständiger Pfad-URL zum Symbol oder Dateipfad zu den Erweiterungsressourcen "chrome_gcm_ttl": 3600, // optional. Time-to-live-Parameter – maximale Lebensdauer der Nachricht in Sekunden. "chrome_duration": 20, // optional. Ändert die Anzeigezeit von Chrome-Pushes. Auf 0 setzen, um den Push anzuzeigen, // bis der Benutzer damit interagiert. "chrome_image": "image_URL", // optional. URL zu einem großen Bild "chrome_root_params": { // optional. Setzen Sie spezifische Parameter für Nachrichten, die an Chrome gesendet werden. "key": "value" }, "chrome_button_text1": "text1", // optional. "chrome_button_url1": "button1_URL", // optional. Wird ignoriert, wenn chrome_button_text1 nicht gesetzt ist. "chrome_button_text2": "text2", // optional. "chrome_button_url2": "button2_url", // optional. Wird ignoriert, wenn chrome_button_text2 nicht gesetzt ist.
// Firefox-bezogene Parameter "firefox_title": { // optional. Objekt ODER String. Sie können hier den Nachrichten-Header angeben. "en": "title" }, "firefox_content": { // optional. Objekt ODER String. Sie können hier den Nachrichteninhalt angeben. "en": "content" }, "firefox_icon": "icon_URL", // optional. Vollständiger Pfad-URL zum Symbol oder Pfad // zur Datei in den Erweiterungsressourcen. "firefox_root_params": { // optional. Setzen Sie spezifische Parameter für Nachrichten, die an Firefox gesendet werden. "key": "value" } }}Die Grundlagen sind sehr einfach – alle Filter werden auf den Mengen von Entitäten ausgeführt.
Mengen
Anchor link toMengen sind definiert als:
1. Geräte, die die jeweilige App abonniert haben (A);
2. Geräte, die den angegebenen Tag-Werten (T) oder app-spezifischen Tag-Werten (AT) entsprechen;\
Syntax
Anchor link toVersuchen wir es mit einigen Beispielen gemäß der obigen Liste.
Abonnenten von Apps ansprechen
Anchor link toDer “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 toDer “T”-Filter definiert eine Menge von Geräten, denen die angegebenen Tag-Werte zugewiesen sind.
T(\"Age\", IN, [17,20])
Definiert die Menge der Geräte, bei denen das Tag „age“ auf einen der Werte 17, 18, 19, 20 gesetzt ist.
Tag-Typen und Operatoren
Anchor link toEs 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.
Das Tag kann einer von drei verschiedenen Typen sein: String, Integer, List. Der Tag-Typ definiert, welche Operatoren Sie für ein bestimmtes Tag verwenden können.
String-Tags
Anchor link toAnwendbare 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 ein bestimmtes Tag ab
- ANY – zielt auf Geräte mit einem beliebigen Wert für ein bestimmtes 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 einen String umgewandelt.
Integer-Tags
Anchor link toAnwendbare Operatoren:
- GTE – größer oder gleich einem bestimmten Wert
- LTE– kleiner oder gleich einem bestimmten Wert
- EQ – gleich einem bestimmten Wert
- BETWEEN – zwischen den angegebenen Min- und Max-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 ein bestimmtes Tag
- ANY – Geräte mit einem beliebigen Wert für ein bestimmtes 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 toAnwendbare Operatoren:
- IN – Geräte mit einem der angegebenen Tag-Werte
Beispiel: T("Category", IN, ["breaking_news","business","politics"])
Datums-Tags
Anchor link toAnwendbare Operatoren:
- GTE – größer oder gleich einem bestimmten Wert
- LTE– kleiner oder gleich einem bestimmten Wert
- EQ – gleich einem bestimmten Wert
- BETWEEN – zwischen den angegebenen Min- und Max-Werten
- NOTEQ – Geräte mit einem Tag-Wert, der nicht einem bestimmten Wert entspricht
- NOTSET – Geräte ohne Wert für ein bestimmtes Tag
- ANY – Geräte mit einem beliebigen Wert für ein bestimmtes 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 toPOST https://api.pushwoosh.com/json/1.3/getPushHistory
Ruft die Nachrichten-Historie mit Push-Details ab.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| limitMessages | integer | Begrenzt die Anzahl der Nachrichten in einer Antwort. Mögliche Werte von 10 bis 1000. |
| source | string | Push-Historienquelle. Kann null oder sein: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”. |
| searchBy | string | Mögliche Werte, nach denen gesucht werden kann. Kann null oder sein: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”. |
| value | string | Suchwert, der gemäß dem Feld “searchBy” festgelegt wird. |
| lastNotificationID | string | Wird für die Paginierung verwendet. Letzte messageId aus dem vorherigen /getPushHistory-Aufruf. Siehe Details 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 } }] }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "source": null, // optional. Mögliche Werte sind null, "CP", "API", "GeoZone", // "RSS", "AutoPush", "A/B Test" "searchBy": "applicationCode", // optional. Mögliche Werte sind "", "notificationID", // "notificationCode", "applicationCode", "campaignCode" "value": "C8717-703F2", // optional. Suchwert, der gemäß dem Feld "searchBy" festgelegt wird. "lastNotificationID": 0, // optional. Wird für die Paginierung verwendet. Letzte messageId aus dem // vorherigen /getPushHistory-Aufruf. Siehe Details unten. "limitMessages": 1000 // optional. Möglicher Wert von 10 bis 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 toid -- int | 0code -- stringcreateDate -- string (Datum: %Y-%m-%d %H:%M:%S)sendDate -- string (Datum: %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 -- stringios_title -- string | array ( dict {lang: value} ) | nullios_subtitle -- string | array ( dict {lang: value} ) | nullios_root_params -- dict (JSON) | nullandroid_header -- string | array ( dict {lang: value} ) | nullandroid_root_params -- dict (JSON) | nullconditions -- list (JSON) | nullconditions_operator -- string | nullfilter_code -- string | nullfilter_name -- string | nullfilter_conditions -- string | nullgeozone -- string | nullcampaignId -- string | ""campaignName -- string | ""subscription_segments (veraltet) -- list (JSON) | nulldata -- dict (JSON) | nullopen -- dict [dict [string: int]] | "" Beispiel: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}sent -- dict [dict [string: int]] | "" Beispiel: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}ctr -- dict [string: int] | "" Beispiel: {'AAAAA-BBBBB': 1}errors -- dict [string: int] | "" Beispiel: {'ANDROID': 1, 'IOS': 1}cancelMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/cancelMessage
Löscht eine geplante Nachricht.
Request-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| auth* | string | API-Zugriffstoken aus dem Pushwoosh Control Panel. |
| message* | string | Der Nachrichtencode, der in der /createMessage-Antwort erhalten wurde. |
{ "status_code":200, "status_message":"OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel "message": "xxxx-xxxxxxx-xxxxxx" // erforderlich. Der Nachrichtencode, der in der /createMessage-Antwort erhalten wurde }}Statuscodes:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Nachricht erfolgreich storniert |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen. |
| 400 | N/A | Fehlerhafter Anforderungsstring |
| 500 | 500 | Interner Fehler |