Geräteregistrierungs-API

Die Geräteregistrierungs-API stellt serverseitige Schnittstellen zur Registrierung von Geräte-Token und zum Abrufen der registration_id in AppPush bereit.

registration_id über einen Token abrufen

Mit dieser API kann ein Server AppPush-Benutzer über FCM-Tokens oder APNs Device Tokens registrieren und die von EngageLab erzeugte registration_id abrufen. Anschließend kann die registration_id für gezielte Benutzer-Pushs sowie gerätebezogene APIs wie Tags und Aliase verwendet werden.

Nutzungseinschränkungen

  • Pro Anfrage können 1–500 Tokens registriert werden.
  • Eine Anfrage darf nur Tokens einer Plattform enthalten: entweder FCM-Tokens oder APNs Device Tokens. FCM- und APNs-Tokens dürfen nicht in derselben Anfrage gemischt werden.
  • Wiederholte Anfragen mit derselben Anwendung, Plattform und demselben Token sind idempotent. Es wird kein Benutzer doppelt angelegt, und die vorhandene registration_id wird zurückgegeben.
  • Die Ergebnisse werden in derselben Reihenfolge wie die Tokens in der Anfrage zurückgegeben.

Endpunkt

POST /v4/devices/token/registration_id
              
              POST /v4/devices/token/registration_id

            
Diesen Codeblock im schwebenden Fenster anzeigen

Die vollständige Anfrage-URL setzt sich aus der Base URL des Rechenzentrums der Anwendung und dem oben genannten Pfad zusammen. Informationen zu Rechenzentrumsadressen und Authentifizierung finden Sie unter REST-API-Übersicht.

Anfrageheader

Content-Type: application/json Accept: application/json Authorization: Basic base64_auth_string
              
              Content-Type: application/json
Accept: application/json
Authorization: Basic base64_auth_string

            
Diesen Codeblock im schwebenden Fenster anzeigen

Anfrageparameter

Name Typ Erforderlich Beschreibung
platform string Ja Plattform der Tokens. Unterstützte Werte: android und ios. Verwenden Sie android für FCM-Tokens.
tokens array<string> Ja Liste der zu registrierenden Tokens mit 1–500 Einträgen. Alle Tokens einer Anfrage müssen zu der in platform angegebenen Plattform gehören.
apns_production boolean Für iOS erforderlich APNs-Umgebung. true steht für die Produktionsumgebung, false für die Entwicklungsumgebung. Dieses Feld darf in Android-Anfragen nicht enthalten sein.

Formatregeln für Tokens

  • FCM-Token: Muss eine nicht leere Zeichenfolge mit höchstens 400 Zeichen sein. Zulässig sind ausschließlich druckbare ASCII-Zeichen (0x210x7E). Leerzeichen, Zeilenumbrüche sowie führende oder nachgestellte Leerzeichen sind nicht zulässig.
  • APNs Device Token: Muss eine nicht leere hexadezimale Zeichenfolge mit gerader Zeichenanzahl und höchstens 400 Zeichen sein. Zulässig sind nur 0-9, a-f und A-F. Leerzeichen, spitze Klammern und andere Trennzeichen sind nicht zulässig.

Diese API prüft nur das Token-Format und kann nicht bestätigen, ob ein Token aktuell gültig ist. Die Gültigkeit ergibt sich aus dem tatsächlichen Push-Ergebnis von FCM oder APNs.

Android-(FCM-)Anfragebeispiel

curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \ -u 'appKey:masterSecret' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "platform": "android", "tokens": [ "fcm_token_1", "fcm_token_2" ] }'
              
              curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \
  -u 'appKey:masterSecret' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "platform": "android",
    "tokens": [
      "fcm_token_1",
      "fcm_token_2"
    ]
  }'

            
Diesen Codeblock im schwebenden Fenster anzeigen

iOS-(APNs-)Anfragebeispiel

curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \ -u 'appKey:masterSecret' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "platform": "ios", "tokens": [ "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" ], "apns_production": true }'
              
              curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \
  -u 'appKey:masterSecret' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "platform": "ios",
    "tokens": [
      "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
    ],
    "apns_production": true
  }'

            
Diesen Codeblock im schwebenden Fenster anzeigen

Antwortparameter

Name Typ Beschreibung
results array<object> Registrierungsergebnis für jeden Token in derselben Reihenfolge wie tokens in der Anfrage.
results[].token string Token aus der Anfrage.
results[].registration_id string Eindeutige EngageLab-Benutzerkennung. Wird zurückgegeben, wenn der aktuelle Token erfolgreich registriert wurde.
results[].is_new boolean true bedeutet, dass in dieser Anfrage ein Benutzer neu angelegt wurde; false bedeutet, dass der Token bereits registriert war und der vorhandene Benutzer zurückgegeben wurde.
results[].code integer Verarbeitungscode des einzelnen Tokens. 0 bedeutet Erfolg, ein anderer Wert bedeutet Fehler.
results[].message string Fehlerbeschreibung, wenn die Verarbeitung eines einzelnen Tokens fehlschlägt. Bei Erfolg wird das Feld nicht zurückgegeben.

Ergebniscodes für einzelne Tokens:

Code Beschreibung
0 Der Token wurde erfolgreich registriert.
21003 Das Token-Format ist ungültig.
27000 Token-Abfrage, Registrierung oder Synchronisierung ist fehlgeschlagen.

Beispiel für eine erfolgreiche Antwort

Bei der ersten Registrierung ist is_new gleich true:

{ "results": [ { "token": "fcm_token_1", "registration_id": "13065ffa4e1a6cc91c3", "is_new": true, "code": 0 }, { "token": "fcm_token_2", "registration_id": "13065ffa4e1a6cc91c4", "is_new": true, "code": 0 } ] }
              
              {
  "results": [
    {
      "token": "fcm_token_1",
      "registration_id": "13065ffa4e1a6cc91c3",
      "is_new": true,
      "code": 0
    },
    {
      "token": "fcm_token_2",
      "registration_id": "13065ffa4e1a6cc91c4",
      "is_new": true,
      "code": 0
    }
  ]
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Wird ein bereits registrierter Token erneut übermittelt, wird dieselbe registration_id zurückgegeben und is_new ist false:

{ "results": [ { "token": "fcm_token_1", "registration_id": "13065ffa4e1a6cc91c3", "is_new": false, "code": 0 } ] }
              
              {
  "results": [
    {
      "token": "fcm_token_1",
      "registration_id": "13065ffa4e1a6cc91c3",
      "is_new": false,
      "code": 0
    }
  ]
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel für einen fehlgeschlagenen einzelnen Token

Hat ein Token in einer Batch-Anfrage ein ungültiges Format oder schlägt seine Registrierung fehl, enthält dieses Element einen Fehler in code und message. Die übrigen Tokens können weiterhin normal verarbeitet werden. Im folgenden Beispiel schlägt die Formatprüfung des leeren Tokens fehl:

{ "results": [ { "token": "fcm_token_1", "registration_id": "13065ffa4e1a6cc91c3", "is_new": false, "code": 0 }, { "token": "", "is_new": false, "code": 21003, "message": "invalid fcm token format" } ] }
              
              {
  "results": [
    {
      "token": "fcm_token_1",
      "registration_id": "13065ffa4e1a6cc91c3",
      "is_new": false,
      "code": 0
    },
    {
      "token": "",
      "is_new": false,
      "code": 21003,
      "message": "invalid fcm token format"
    }
  ]
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel für eine fehlgeschlagene Anfrage

Sind die Anfrageparameter insgesamt ungültig, gibt die API HTTP 400 zurück. Fehlt beispielsweise bei einer iOS-Anfrage apns_production, lautet die Antwort:

{ "error": { "code": 21003, "message": "apns_production is required for ios" } }
              
              {
  "error": {
    "code": 21003,
    "message": "apns_production is required for ios"
  }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Häufige Anfragefehler:

  • platform ist weder android noch ios;
  • tokens ist leer oder enthält mehr als 500 Einträge;
  • eine Android-Anfrage enthält apns_production;
  • in einer iOS-Anfrage fehlt apns_production.

API-Antworten

HTTP-Statuscodes

Siehe HTTP-Statuscode.

Fehlercodes

Die folgende Tabelle enthält Fehlercodes auf Anfrageebene. In einer Batch-Anfrage werden Fehler einzelner Tokens über results[].code und results[].message zurückgegeben und beeinflussen die Verarbeitung der übrigen Tokens nicht.

Code Beschreibung Details HTTP-Statuscode
0 success Die Anfrage war erfolgreich. Die Verarbeitungsergebnisse der einzelnen Tokens stehen in results. 200
21003 Parameter value is invalid platform, tokens oder apns_production ist ungültig. 400
21004 basic auth failed Das Master Secret ist falsch. 401
21008 app_key is not a 24 size string Die Länge des AppKey ist ungültig. 400
23010 Rate limit exceeded for the API Der aktuelle AppKey hat das API-Ratenlimit überschritten. 400
27000 Server inner err Interner Serverfehler. Versuchen Sie es später erneut. 500
27001 app_key does not exist or basic info is invalid Basic Auth fehlt, der AppKey existiert nicht oder die Authentifizierungsinformationen der Anwendung sind ungültig. 401
27002 parameter is invalid Der Anfragebody fehlt, das JSON-Format ist ungültig oder ein Parameter hat den falschen Typ. 400
Icon Solid Transparent White Qiyu
Vertrieb kontaktieren