Push-Nachrichten Versenden

Mit Push-Nachrichten können gezielt Informationen an Benutzer der App gesendet werden. Dies kann alle registrierten Benutzer betreffen oder spezifische Zielgruppen wie Abteilungen, Gruppen oder Rollen. Typische Anwendungsfälle umfassen Ankündigungen, Veranstaltungsänderungen oder wichtige Benachrichtigungen.

Verfügbare Push-Kanäle abrufen

Zuerst müssen wir die verfügbaren Push-Kanäle ermitteln, um eine Nachricht gezielt an einen Kanal zu senden. Dazu nutzen wir die Query listPushChannels. Die Antwort liefert uns eine Liste der Kanäle, inklusive der ID, welche für den gezielten Versand benötigt wird:

query ListPushChannels {
    listPushChannels {
        id
        number
        name
        description
        imageResourceId
        soundId
        autoSubscribe
        initialSubscribe
        active
        subscriptionCount
        allowedGroupIds
    }
}

Die Response zeigt uns eine Übersicht aller Push-Kanäle:

{
    "data": {
        "listPushChannels": [
            {
                "id": "5e8dcabb34fc37d152ae23cf",
                "number": 1,
                "name": "Allgemeine News",
                "description": "Hier werden allgemeine News veröffentlicht",
                "imageResourceId": null,
                "soundId": null,
                "autoSubscribe": true,
                "initialSubscribe": true,
                "active": true,
                "subscriptionCount": 400,
                "allowedGroupIds": null
            },
            {
                "id": "5ec3de8434fc8a61a1c3f2ea",
                "number": 2,
                "name": "Beispielkanal 1",
                "description": "",
                "imageResourceId": null,
                "soundId": null,
                "autoSubscribe": false,
                "initialSubscribe": false,
                "active": false,
                "subscriptionCount": 0,
                "allowedGroupIds": null
            }
        ]
    }
}

Push-Nachricht versenden

Mit der Mutation sendPushNotificationToDevices können wir nun eine Push-Nachricht versenden. Im folgenden Beispiel senden wir die Nachricht nur an den Kanal "Allgemeine News". Es besteht jedoch auch die Möglichkeit, gezielt an bestimmte Abteilungen, Gruppen oder Rollen zu senden, so wie Sie es aus dem Modul der App bzw. dem CMS kennen.

Um dies zu erreichen, müssen Sie die entsprechenden IDs in die Felder departmentIds (Schlüssel der Abteilung, abrufbar mit listEnumValues oder durch Nachschlagen im CMS), groupIds (abrufbar mit listGroups) und/oder roleIds (Schlüssel der Rolle, ebenfalls über listEnumValues oder im CMS auffindbar) eintragen. Bei der Auswahl mehrerer Kriterien (z. B. Abteilungen, Gruppen und Rollen) wird eine logische UND-Verknüpfung angewendet. Das bedeutet, dass ein Benutzer alle ausgewählten Kriterien erfüllen muss, um die Nachricht zu erhalten.

mutation SendPushNotificationToDevices {
    sendPushNotificationToDevices(
        notification: {
            mode: NORMAL
            message: "Unsere Mannschaft hat gewonnen!!"
            channelIds: ["5e8dcabb34fc37d152ae23cf"]
        }
    ) {
        id
        message
    }
}

Die folgende Response zeigt die versendete Nachricht:

{
    "data": {
        "sendPushNotificationToDevices": {
            "id": "5e8dcabb34fc37d152ae23cf",
            "message": "Unsere Mannschaft hat gewonnen!!"
        }
    }
}

Weitere nützliche Queries:

Weitere nützliche Mutationen: