Geplante Aufgaben API
Mit der EngageLab API-Schicht können Sie zeitgesteuerte Funktionen effizient umsetzen und geplante Aufgaben unabhängig ausführen. Das zugrundeliegende Schedule-Objekt ermöglicht die flexible Verwaltung und Automatisierung Ihrer Push-Benachrichtigungen.
Hinweis: Geplante Aufgaben, die über die API erstellt wurden, lassen sich ausschließlich per API abrufen, ändern oder löschen.
Authentifizierung
Bitte beachten Sie die Authentifizierungsmethoden in der REST API-Übersicht.
Schedule-Parameter im Überblick
Jede geplante Aufgabe besteht aus vier Abschnitten: name, enabled, trigger und push.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| name | String | Ja | Name der geplanten Aufgabe, max. 255 Bytes, erlaubt sind chinesische Zeichen, Buchstaben, Zahlen und Unterstriche. |
| enabled | Boolean | Ja | Gibt den aktuellen Status der Aufgabe an; beim Erstellen muss der Wert auf true stehen. |
| trigger | JSON-Objekt | Ja | Auslösebedingungen und Zeitpunkt der Aufgabe. Unterstützt Einmal-Aufgaben (single), periodische Aufgaben (periodical) und intelligente Zustellung (intelligent). Details siehe Single-Beschreibung. |
| push | JSON-Objekt | Ja | Push-Inhalt, siehe Felder in der App Push Dokumentation. |
Single-Beschreibung
Definiert die Auslösebedingungen für eine einmalige geplante Aufgabe.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| time | String | Ja | Auslösezeitpunkt im Format „yyyy-MM-dd HH:mm:ss“, z. B. „2014-02-15 13:16:59“. Unvollständige Formate sind nicht zulässig. Die späteste Zeit darf ein Jahr nicht überschreiten. |
| zone_type | Int | Ja | Zeitzonentyp: 1 = Hauptseiten-Zeitzone, 2 = Zeitzone des Endgeräts. |
Periodical-Beschreibung
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| start | String | Ja | Startzeitpunkt im Format „yyyy-MM-dd HH:mm:ss“, 24-Stunden-Format. |
| end | String | Ja | Endzeitpunkt, gleiches Format wie oben. Maximale Laufzeit: 1 Jahr. |
| time | String | Ja | Exakte Auslösezeit im Format „HH:mm:ss“, 24-Stunden-Format. |
| time_unit | String | Ja | Zeiteinheit: „day“, „week“ oder „month“ (Groß-/Kleinschreibung wird ignoriert). |
| point | String | Ja | Liste entsprechend time_unit, siehe unten. |
| zone_type | Int | Ja | Zeitzonentyp: 1 = Hauptseiten-Zeitzone, 2 = Zeitzone des Endgeräts. |
Details zum Parameter point:
| time_unit | point | Beschreibung |
|---|---|---|
| day | NULL | Bei „day“ ist point irrelevant. |
| week | "MON","TUE","WED","THU","FRI","SAT","SUN" | Ein oder mehrere Wochentage, Groß-/Kleinschreibung wird ignoriert. |
| month | "01","02",...,"31" | Gültige Kalendertage des Monats. An ungültigen Tagen (z. B. 30. Februar) erfolgt keine Auslösung. |
Intelligent-Beschreibung
| Parameter | Typ | Erforderlich | Bedeutung |
|---|---|---|---|
| backup_time | String | Ja | Intelligente Zustellung ist eine EngageLab-Funktion zur Optimierung der Klickrate. Für Nutzer:innen ohne Aktivitätsdaten kann sofort („now“) oder zu einem bestimmten Zeitpunkt (Format: „yyyy-MM-dd HH:mm:ss“, 24-Stunden-Format) gesendet werden. |
Geplante Aufgabe erstellen
Endpoint
POST v4/schedules
Einschränkungen
- Maximal 1.000 aktive (nicht abgelaufene) geplante Aufgaben möglich. Bei Überschreitung schlägt das Erstellen fehl.
- Empfohlene maximale Laufzeit: 1 Jahr.
- Der Name darf max. 255 Zeichen umfassen und nur Zahlen, Buchstaben, Unterstriche sowie chinesische Zeichen enthalten.
Beispiel-Anfrage
Request-Header
POST /v4/schedules
Authorization: Basic (base64 auth string)
Content-Type: application/json
Accept: application/json
Request-Body
Beispiel: Einmalige geplante Aufgabe
{
"name":"Timed Push Example_single",
"enabled":true,
"trigger":{
"single":{
"time":"2022-11-23 19:20:00",
"zone_type":1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"android",
"notification":{
"alert":"Scheduled task from API",
"android":{
"title":"Scheduled task from API",
"extras":{
"key1":"value1"
}
}
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push to you"
}
}
}
Beispiel: Periodische geplante Aufgabe
{
"name":"Timed Push Example_periodical",
"enabled":true,
"trigger":{
"periodical": {
"start": "2024-01-01 00:00:00",
"end": "2024-02-10 00:00:00",
"time": "12:00:00",
"time_unit": "day",
"point": [],
"zone_type": 1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"android",
"notification":{
"alert":"repeats periodic tasks",
"android":{
"title":"repeats periodic tasks",
"extras":{
"key1":"value1"
}
}
},
"options":{
"time_to_live":60
}
},
"request_id":"67890",
"custom_args":{
"Engagelab": "push to you"
}
}
}
Beispiel: Intelligente Zustellung
{
"name":"Intelligent delivery",
"enabled":true,
"trigger":{
"intelligent": {
"backup_time":"2024-01-01 00:00:00"
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"android",
"notification":{
"alert":"Scheduled task from API",
"android":{
"title":"Scheduled task from API",
"extras":{
"key1":"value1"
}
}
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push to you"
}
}
}
Hinweise zu den Request-Daten
zone_typemuss mit 1 oder 2 belegt werden, sonst erfolgt die Auslösung nach Server-Zeitzone.- Beim erstmaligen Erstellen muss
enabledauftruegesetzt sein, sonst schlägt die Erstellung fehl. pushmuss eine gültige Push-Konfiguration enthalten.
Erfolgreiche Antwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"schedule_id": "a9b85590-6cec-4f91-b277-2d82b0e20ef6",
"name": "Timed Task Name"
}
Fehlerhafte Antwort
HTTP/1.1 400 BAD REQUEST
Content-Type: application/json; charset=utf-8
{
"error": {
"code": 28400,
"message": "error message"
}
}
Aktive geplante Aufgaben abrufen
- Liste aller aktuell gültigen (nicht abgelaufenen) geplanten Aufgaben abfragen.
Endpoint
GET v4/schedules?page=
Beispiel-Anfrage
Request-Header
GET /v4/schedules?page=
Authorization: Basic (base64 auth string)
Content-Type: application/json
Accept: application/json
- Gibt die geplanten Aufgaben der aktuellen Seite zurück. Ohne Angabe wird Seite 1 verwendet.
- Sortierung nach Erstellungszeit.
- Maximal 50 Aufgaben pro Seite.
Erfolgreiche Antwort
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"total_count": 1000,
"total_pages": 5,
"page": 4,
"schedules": [
{
"schedule_id": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
"name": "",
"enabled": true
}
// Weitere Aufgaben
]
}
Details einer geplanten Aufgabe abrufen
- Details einer geplanten Aufgabe anhand der ID
{schedule_id}abfragen.
Endpoint
GET v4/schedules/{schedule_id}
Beispiel-Anfrage
Request-Header
GET /v4/schedules/{schedule_id}
Authorization: Basic (base64 auth string)
Content-Type: application/json
Accept: application/json
Erfolgreiche Antwort
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[{
"schedule_id": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
"name": "定时推送示例",
"enabled": true,
"trigger": {...},
"push": {...}
}]
Alle Message-IDs einer geplanten Aufgabe abrufen
- Alle Message-IDs einer geplanten Aufgabe mit der ID
{schedule_id}abfragen.
Endpoint
GET v4/schedules/{schedule_id}/msg-ids
Beispiel-Anfrage
Request-Header
GET /v4/schedules/{schedule_id}/msg-ids
Authorization: Basic (base64 auth string)
Content-Type: application/json
Accept: application/json
Erfolgreiche Antwort
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"count": 1,
"MsgIds": [
"{\"msg_id\":\"1088009\",\"error\":{\"code\":0,\"message\":\"\"},\"needRetry\":false,\"ts\":1707278411611}",
"{\"msg_id\":\"0\",\"error\":{\"code\":1011,\"message\":\"Cannot find sending target\"},\"needRetry\":false,\"ts\":1707278411611}"
]
}
- Das Feld
tsgibt den Zeitstempel der erfolgreichen Ausführung in Millisekunden an.
Geplante Aufgabe aktualisieren
- Eine bestimmte geplante Aufgabe anhand ihrer ID aktualisieren.
Endpoint
PUT v4/schedules/{schedule_id}
Beispiel-Anfrage
Request-Header
PUT /v4/schedules/{schedule_id}
Authorization: Basic (base64 auth string)
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Request-Body
{
"name": "task",
"enabled": true,
"trigger": {...},
"push": {...}
}
Wichtige Hinweise:
- Abgelaufene Aufgaben können nicht aktualisiert werden.
- Ein Wechsel zwischen Hauptseiten- und Endgeräte-Zeitzone ist nicht möglich.
- Beim Update müssen alle relevanten Unterfelder von
pushvollständig übergeben werden; Teilaktualisierungen sind nicht zulässig.
Falsche Update-Beispiele
// FALSCH: Nur die Plattform aktualisieren
{
"push": {
"body": {
"platform": "ios"
}
}
}
// FALSCH: Nur das Enddatum aktualisieren
{
"trigger": {
"periodical": {
"end": "2024-03-10 00:00:00"
}
}
}
Richtige Update-Beispiele
// RICHTIG: Plattform auf iOS ändern
{
"name": "Scheduled Push Example",
"enabled": true,
"trigger": {
"periodical": {
"start": "2024-01-01 00:00:00",
"end": "2024-02-10 00:00:00",
"time": "12:00:00",
"time_unit": "day",
"point": [],
"zone_type": 1
}
},
"push": {
"from": "push",
"to": {
"registration_id": [
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body": {
"platform":"ios",
"notification":{
"alert":"API Terminal Scheduled Task",
"ios":{
"alert": {
"title": "hello",
"body": "welcome"
},
"extras":{
"key1":"value1"
}
}
},
"options": {
"time_to_live": 60
}
},
"request_id": "12345",
"custom_args": {
"Engagelab": "push to you"
}
}
}
// RICHTIG: Enddatum verlängern
{
"name": "Scheduled Push Example",
"enabled": true,
"trigger": {
"periodical": {
"start": "2024-01-01 00:00:00",
"end": "2024-03-10 00:00:00",
"time": "12:00:00",
"time_unit": "day",
"point": [],
"zone_type": 1
}
},
"push": {
"from": "push",
"to": {
"registration_id": [
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body": {
"platform": "android",
"notification": {
"alert": "API terminal scheduled task",
"android": {
"title": "API terminal scheduled task",
"extras": {
"key1": "value1"
}
}
},
"options": {
"time_to_live": 60
}
},
"request_id": "12345",
"custom_args": {
"Engagelab": "push to you"
}
}
}
Tipp: Übermitteln Sie beim Aktualisieren immer die vollständige Struktur, um Fehler durch Teilaktualisierungen zu vermeiden.
Erfolgreiche Antwort
HTTP/1.0 200 CREATED
Content-Type: application/json
{
"name": "Periodic Push Example",
"enabled": true,
"trigger": {
"periodical": {
"start": "2024-01-01 00:00:00",
"end": "2024-02-10 00:00:00",
"time": "12:00:00",
"time_unit": "day",
"point": [],
"zone_type": 1
}
},
"push": {
"from": "push",
"to": {
"registration_id": [
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body": {
"platform": "ios",
"notification": {
"alert": "API terminal scheduled task",
"ios": {
"alert": {
"title": "hello",
"body": "welcome"
},
"extras": {
"key1": "value1"
}
}
},
"options": {
"time_to_live": 60
}
},
"request_id": "12345",
"custom_args": {
"Engagelab": "push to you"
}
}
}
Fehlerhafte Antwort
- Ungültige oder nicht vorhandene
schedule_id:
HTTP/1.0 404 Not Found
Content-Type: application/json
- Ungültige Update-Operation:
HTTP/1.0 400 BAD REQUEST
Content-Type: application/json
Geplante Aufgabe löschen
Endpoint
DELETE v4/schedules/{schedule_id}
schedule_idist die ID einer bestehenden geplanten Aufgabe. Bei ungültiger oder nicht vorhandener ID wird ein 404-Fehler zurückgegeben.
Beispiel-Anfrage
DELETE /v4/schedules/{schedule_id}
Authorization: Basic (base64 auth string)
Content-Type: application/json
Accept: application/json
Erfolgreiche Antwort
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 0
Fehlerhafte Antwort
HTTP/1.0 404 Not Found
Content-Type: application/json
Content-Length: 0
{
"error": {
"code": 28404,
"message": "error message"
}
}
Fehlercodes
| Code | HTTP | Beschreibung | Fehlermeldung | Detaillierte Erklärung |
|---|---|---|---|---|
| 28000 | 200 | Erfolgreiche Rückgabe | - | Erfolgs-Statuscode |
| 28100 | 400 | Ungültiger Parameter | The schedule-task is invalid: section is invalid; has been at term; expired; request data is not JSON; update target task; delete target task; schedule request does not exist | |
| 28101 | 401 | Authentifizierung fehlgeschlagen | Basic authentication failed. | appkey und mastersecret stimmen nicht überein. |
| 28102 | 400 | Ungültiger Push-Parameter | push param is nil or invalid | Ungültiger Push-Parameter, spezifische Fehlermeldung wird zurückgegeben. |
| 28103 | 400 | Ungültiger Push-Zeit-Parameter | single time or trigger time format err | Ungültiger Push-Zeit-Parameter, spezifische Fehlermeldung wird zurückgegeben. |
| 28104 | 404 | Angeforderte geplante Aufgabe existiert nicht | Request schedule operation doesn't exist | Aufgabe wurde bereits versendet oder die Schedule-ID ist falsch. |
| 28105 | 404 | Kein Push-Ziel für den festgelegten Zeitpunkt | The push task is invalid. There is no push target for the scheduled time | Fehlerhafter Push-Zeit-Parameter. |
| 28200 | 500 | Interner Serverfehler | Server Internal error. | Unerwarteter Fehler ist aufgetreten. |
| 28203 | 503 | Interner Serverfehler, bitte später erneut versuchen | Execute action timeout, please try later again | Kommunikationsfehler mit dem Schedule-Server. |
Weitere Informationen:
Jetzt loslegen:
- Geplante Aufgabe erstellen
- Aufgabe aktualisieren
- Aufgabe löschen
- Mehr erfahren
Mit der EngageLab API für geplante Aufgaben automatisieren Sie Ihre Push-Benachrichtigungen effizient, steigern die Reichweite und optimieren Ihre Kommunikationsstrategie – flexibel, sicher und skalierbar.

