Dokumentation

Push-Benachrichtigungen

Stellen Sie Mitarbeiterantworten und Kampagnen zu, während die App geschlossen ist — mit einem Deep Link direkt in die richtige Konversation. Ihre App besitzt das Push-Subsystem; das SDK registriert Tokens und öffnet Konversationen.

Was Respondo sendet#

  • Nachrichten-Pushes — eine Mitarbeiter- oder KI-Antwort in einer Konversation, an der der Besucher beteiligt ist.
  • Kampagnen-Pushes — ausgehende Push-Kampagnen, die außerdem ein Open-Beacon melden.

Nachrichten-Pushes tragen immer einen Deep Link der Form respondo://conversation/<id>. Kampagnen-Pushes tragen den auf der Kampagne konfigurierten Deep Link — er ist optional; ist er nicht gesetzt, enthält der Push keinen Deep Link.

Apple (APNs)#

iOS-Push läuft direkt über APNs — keine Firebase-Abhängigkeit. Beschaffen Sie aus Ihrem Apple-Developer-Konto:

  • Einen APNs Auth Key (.p8 Token-Key).
  • Die Key ID dieses Keys.
  • Ihre Team ID.
  • Die Bundle ID der App.

Google (FCM)#

Android-Push läuft über Firebase Cloud Messaging. Beschaffen Sie aus Ihrem Firebase-Projekt:

  • Ein Service-Account-JSON mit der Cloud-Messaging-Rolle.
  • Die Firebase-Projekt-ID (Firebase-Konsole → Projekteinstellungen) — wird im Push-Formular des Dashboards als eigenes Feld neben dem Service-Account-JSON eingetragen.
  • Den Package-Namen der Android-App, und verbinden Sie die App mit demselben Firebase-Projekt (google-services.json).

In Respondo konfigurieren#

Fügen Sie den APNs-Key und den FCM-Service-Account mit seiner Projekt-ID zu Ihrem Widget-Kanal im Dashboard hinzu. Mehr braucht Respondo nicht, um an beide Plattformen zu senden.

Das Setzen der Anmeldedaten über die API und die vollständige Feldreferenz werden im Push-Setup-Leitfaden behandelt, der mit Ihrem SDK-Zugang geliefert wird.

Payload-Format#

Die Payload liegt immer unter einem Wurzel-Schlüssel respondo — an seinem Vorhandensein erkennt das SDK seinen eigenen Push von fremden (auf iOS in userInfo, auf Android als JSON-Zeichenkette in data["respondo"]).

respondo payloadjson
{
  "respondo": {
    "type": "message",
    "conversation_id": "a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90",
    "message_id": "e9a3c1f6-4b8d-4e0a-b5f3-1d7b2a4e9c63",
    "deep_link": "respondo://conversation/a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90"
  }
}

Alle Werte sind flache Strings. Titel und Text der Benachrichtigung werden vom Plattform-Transport zugestellt — aps.alert auf APNs und message.notification auf FCM — nicht innerhalb des respondo-Objekts.

Kampagnen-Pushes enthalten außerdem eine delivery_id, die zum Melden des Open-Beacons verwendet wird, und können zusätzliche flache String-Schlüssel aus den Push-Daten der Kampagne tragen.

Taps & Vordergrund behandeln#

Übergeben Sie bei einem Tap auf die Benachrichtigung die rohe Payload an das SDK. Es parst die Payload und öffnet die richtige Konversation und gibt false zurück, wenn der Push kein Respondo-Push ist (behandeln Sie ihn in diesem Fall selbst).

Einen Tap behandeln (pro Plattform)text
Android:  RespondoPushPayload.from(data)?.let { Respondo.handlePush(it) }
iOS:      Respondo.handlePush(userInfo: userInfo)
Flutter:  Respondo.handlePushData(message.data)

Duplikate werden anhand der message_id zusammengefasst, und solange dieselbe Konversation im Vordergrund geöffnet ist, wird die System-Benachrichtigung unterdrückt — das SDK erledigt beides automatisch.

Device-Tokens registrieren#

Ihre App bezieht das Device-Token von ihrem Push-Subsystem und übergibt es an setPushToken. Rufen Sie beim Logout clearPushToken auf.

Welches Token übergeben. Das Backend leitet jede Zustellung nach Plattform weiter — iOS geht direkt an APNs, Android geht an FCM — daher müssen Sie das Token des nativen Transports der jeweiligen Plattform registrieren, nicht das, was Ihre Push-Bibliothek zufällig zurückgibt:
  • Android — das FCM-Registrierungstoken aus FirebaseMessaging.getToken().
  • iOS (nativ) — das APNs-Device-Token (Hex) aus didRegisterForRemoteNotificationsWithDeviceToken.
  • iOS über Flutter (firebase_messaging) — verwenden Sie getAPNSToken(), nicht getToken(). Das Übergeben des FCM-Tokens auf iOS sendet es an APNs, wo es kein gültiges Device-Token ist und Pushes nie ankommen. getAPNSToken() kann in den ersten Momenten nach dem Start null sein — wiederholen Sie es in diesem Fall nach einer kurzen Verzögerung.
Android — FirebaseMessagingServicekotlin
override fun onNewToken(token: String) {
    Respondo.setPushToken(token)
}
iOS — AppDelegateswift
func application(
    _ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
    let token = deviceToken.map { String(format: "%02x", $0) }.joined()
    Respondo.setPushToken(token)
}
Flutter — firebase_messagingdart
// iOS braucht das APNs-Token; Android braucht das FCM-Token.
final token = Platform.isIOS
    ? await FirebaseMessaging.instance.getAPNSToken()
    : await FirebaseMessaging.instance.getToken();
if (token != null) Respondo.setPushToken(token);

// FCM rotiert sein Registrierungstoken; halten Sie Android synchron.
if (!Platform.isIOS) {
  FirebaseMessaging.instance.onTokenRefresh.listen(Respondo.setPushToken);
}