Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einrichtung eines SNS Amazon-Plattformendpunkts für mobile Benachrichtigungen
Wenn eine App oder ein Mobilgerät bei einem Push-Benachrichtigungsservice registriert werden, gibt der Push-Benachrichtigungsservice ein Geräte-Token zurück. Amazon SNS verwendet das Geräte-Token, um einen mobilen Endpunkt zu erstellen, an den direkte Push-Benachrichtigungen gesendet werden können. Weitere Informationen erhalten Sie unter Voraussetzungen für SNS Amazon-Benutzerbenachrichtigungen und Push-Benachrichtigungen mit Amazon einrichten SNS.
In diesem Abschnitt wird der empfohlene Ansatz zum Erstellen eines Plattformendpunkts.
Erstellen eines Plattformendpunkts
Um Benachrichtigungen an eine App mit Amazon zu sendenSNS, muss das Geräte-Token dieser App zunächst bei Amazon registriert werden, SNS indem die Aktion Create Platform Endpoint aufgerufen wird. Diese Aktion verwendet den Amazon-Ressourcennamen (ARN) der Plattformanwendung und das Geräte-Token als Parameter und gibt den ARN des erstellten Plattformendpunkts zurück.
Die CreatePlatformEndpoint
Aktion bewirkt Folgendes:
-
Wenn der Plattformendpunkt bereits existiert, erstellen Sie ihn nicht erneut. Kehren Sie zum Anrufer ARN des vorhandenen Plattformendpunkts zurück.
-
Wenn der Plattformendpunkt mit demselben Geräte-Token, aber unterschiedlichen Einstellungen bereits existiert, erstellen Sie ihn nicht erneut. Es wird eine Ausnahme für den Aufrufer ausgelöst.
-
Wenn der Plattformendpunkt nicht existiert, erstellen Sie ihn. Kehren Sie zum Anrufer ARN des neu erstellten Plattformendpunkts zurück.
Sie sollten die Aktion nicht direkt bei jedem Start der Anwendung aufrufen. Sie sorgt nicht immer für die Bereitstellung eines funktionierenden Endpunkts. Dies kann zum Beispiel der Fall sein, wenn eine App auf einem Gerät deinstalliert und neu installiert wird und der Endpunkt für diese bereits vorhanden aber deaktiviert ist. Ein erfolgreicher Registrierungsprozess sollte folgendermaßen aussehen:
-
Stellen Sie sicher, dass ein Plattformendpunkt für diese App-Geräte-Kombination vorhanden ist.
-
Stellen Sie sicher, dass das Geräte-Token im Plattformendpunkt das neueste gültige Geräte-Token ist.
-
Stellen Sie sicher, dass der Plattformendpunkt aktiviert und bereit ist.
Pseudo-Code
Der folgende Pseudo-Code beschreibt ein empfohlenes Verfahren für die Erstellung eines funktionierenden, aktuellen, aktivierten Plattformendpunkts in einer Vielzahl von Startbedingungen. Dieser Ansatz funktioniert, wenn die App zum ersten Mal oder erneut registriert wird. Es ist egal, ob der Plattformendpunkt für diese App bereits vorhanden ist, ob der Plattformendpunkt aktiviert ist, ob er das richtige Geräte-Token hat und so weiter. Der Code kann mehrfach hintereinander aufgerufen werden. Er wird keine doppelten Plattformendpunkte erstellen oder einen vorhandenen Plattformendpunkt ändern, der bereits auf dem neuesten Stand und aktiviert ist.
retrieve the latest device token from the mobile operating system if (the platform endpoint ARN is not stored) # this is a first-time registration call create platform endpoint store the returned platform endpoint ARN endif call get endpoint attributes on the platform endpoint ARN if (while getting the attributes a not-found exception is thrown) # the platform endpoint was deleted call create platform endpoint with the latest device token store the returned platform endpoint ARN else if (the device token in the endpoint does not match the latest one) or (
GetEndpointAttributes
shows the endpoint as disabled) call set endpoint attributes to set the latest device token and then enable the platform endpoint endif endif
Dieser Ansatz kann jederzeit verwendet werden, wenn die App sich registrieren oder erneut registrieren möchte. Es kann auch verwendet werden, um Amazon über eine Änderung SNS des Gerätetokens zu informieren. In diesem Fall können Sie einfach eine Aktion mit dem neuesten Geräte-Token-Wert aufrufen. Es gibt einige wichtige Punkte zu diesem Ansatz:
-
Es gibt zwei Fälle, in denen die „create platform endpoint“-Aktion aufgerufen werden kann. Es kann ganz am Anfang aufgerufen werden, wenn die App ihren eigenen Plattformendpunkt nicht kenntARN, wie dies bei einer erstmaligen Registrierung der Fall ist. Es wird auch aufgerufen, wenn der erste
GetEndpointAttributes
Aktionsaufruf aufgrund einer nicht gefundenen Ausnahme fehlschlägt, was der Fall wäre, wenn die Anwendung ihren Endpunkt kennt, dieser ARN aber gelöscht wurde. -
Die
GetEndpointAttributes
Aktion wird aufgerufen, um den Status des Plattformendpunkts zu überprüfen, auch wenn der Plattformendpunkt gerade erstellt wurde. Dies geschieht, wenn der Plattformendpunkt bereits vorhanden, aber deaktiviert ist. In diesem Fall ist die „create platform endpoint“-Aktion erfolgreich, aber der Plattformendpunkt wird nicht aktiviert. Daher müssen Sie den Status des Plattformendpunkts vor der Rückgabe eines Erfolgs prüfen.
AWS SDKBeispiel
Der folgende Code zeigt, wie der vorherige Pseudocode mithilfe der SNS Amazon-Clients implementiert wird, die von der AWS SDKs bereitgestellt werden.
Um einen zu verwenden AWS SDK, müssen Sie ihn mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter The shared config and credentials files im Referenzhandbuch AWS SDKsund im Tools-Referenzhandbuch.
Weitere Informationen finden Sie unter APIPush-Aktionen auf Mobilgeräten.
Fehlerbehebung
Wiederholtes Aufrufen von „Create Platform Endpoint“ mit einem veralteten Geräte-Token
Insbesondere bei FCM Endgeräten halten Sie es vielleicht für das Beste, das erste Geräte-Token zu speichern, das für die Anwendung ausgestellt wurde, und dann bei jedem Start der Anwendung den Create Platform-Endpunkt mit diesem Geräte-Token aufzurufen. Dies mag richtig erscheinen, da die App dadurch den Status des Gerätetokens nicht verwalten muss und Amazon das Geräte-Token SNS automatisch auf seinen neuesten Wert aktualisiert. Diese Lösung hat jedoch mehrere ernsthafte Probleme:
-
Amazon SNS ist auf Feedback von angewiesenFCM, um abgelaufene Geräte-Token auf neue Geräte-Token zu aktualisieren. FCMspeichert Informationen über alte Geräte-Token für einige Zeit, jedoch nicht auf unbestimmte Zeit. Sobald die Verbindung zwischen dem alten Geräte-Token und dem neuen Geräte-Token FCM vergessen wurde, kann Amazon SNS das auf dem Plattformendpunkt gespeicherte Geräte-Token nicht mehr auf den korrekten Wert aktualisieren. Stattdessen wird lediglich der Plattformendpunkt deaktiviert.
-
Die Plattformanwendung enthält mehrere Plattformendpunkte mit demselben Geräte-Token.
-
Amazon SNS legt ein Kontingent für die Anzahl der Plattformendpunkte fest, die ab demselben Geräte-Token erstellt werden können. Irgendwann wird die Erstellung neuer Endpunkte mit einer „Invalid Parameter“-Ausnahme und der Fehlermeldung „This endpoint is already registered with a different token.“ fehlschlagen.
Weitere Informationen zur Verwaltung von FCM Endpunkten finden Sie unter. SNSAmazon-Verwaltung von Firebase Cloud Messaging-Endpunkten
Erneutes Aktivieren eines Plattformendpunktes mit einem ungültigen Geräte-Token
Wenn eine mobile Plattform (wie APNs oderFCM) Amazon darüber informiertSNS, dass das in der Veröffentlichungsanfrage verwendete Geräte-Token ungültig war, SNS deaktiviert Amazon den mit diesem Geräte-Token verknüpften Plattformendpunkt. Amazon lehnt SNS dann nachfolgende Veröffentlichungen mit diesem Geräte-Token ab. Möglicherweise glauben Sie, Sie könnten einfach den Plattformendpunkt neu aktivieren und so weiter veröffentlichen, doch wird dies in den meisten Fällen nicht funktionieren. Die veröffentlichten Nachrichten werden nicht zugestellt und der Plattformendpunkt wird bald wieder deaktiviert.
Der Grund hierfür ist, dass das Geräte-Token des Plattformendpunkts wirklich ungültig ist. Zustellungen können nicht abgeschlossen werden, da es nicht mehr mit einer installierten App übereinstimmt. Bei der nächsten Veröffentlichung auf informiert die mobile Plattform Amazon erneut darüber, SNS dass das Geräte-Token ungültig ist, und Amazon SNS wird den Plattformendpunkt erneut deaktivieren.
Um einen deaktivierten Plattformendpunkt zu reaktivieren, muss dieser einem gültigen Geräte-Token zugeordnet (über einen „set endpoint attributes“-Aktionsaufruf) sein und dann aktiviert werden. Nur dann werden Zustellungen an den Plattformendpunkt erfolgreich sein. Das erneute Aktivieren eines Plattformendpunkts ohne Aktualisierung des Geräte-Tokens funktioniert nur, wenn ein dem Endpunkt zugeordnetes Geräte-Token ungültig ist und wieder gültig wird. Dies kann zum Beispiel der Fall sein, wenn eine App deinstalliert und dann auf demselben Mobilgerät neu installiert wurde und dasselbe Geräte-Token erhält. Der oben gezeigte Ansatz geht so vor. Er stellt sicher, dass der Plattformendpunkt erst dann neu aktiviert wird, wenn überprüft wurde, dass das ihm zugeordnete Geräte-Token im Moment verfügbar ist.