Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Verwenden von Google Firebase Cloud Messaging v1-Nutzlasten in Amazon SNS

Fokusmodus
Verwenden von Google Firebase Cloud Messaging v1-Nutzlasten in Amazon SNS - Amazon Simple Notification Service

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.

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.

Amazon SNS unterstützt die Verwendung der FCM-HTTP-v1-API zum Senden von Benachrichtigungen an Android-, iOS- und Webpush-Ziele. Dieses Thema enthält Beispiele für die Payload-Struktur beim Veröffentlichen von mobilen Push-Benachrichtigungen über die CLI oder die Amazon SNS SNS-API.

Sie können die folgenden Nachrichtentypen in Ihre Payload aufnehmen, wenn Sie eine FCM-Benachrichtigung senden:

  • Datennachricht — Eine Datennachricht wird von Ihrer Client-App verarbeitet und enthält benutzerdefinierte Schlüssel-Wert-Paare. Wenn Sie eine Datennachricht erstellen, müssen Sie den data Schlüssel mit einem JSON-Objekt als Wert angeben und dann Ihre benutzerdefinierten Schlüssel-Wert-Paare eingeben.

  • Benachrichtigungsnachricht oder Anzeigenachricht — Eine Benachrichtigung enthält einen vordefinierten Satz von Schlüsseln, die vom FCM SDK verarbeitet werden. Diese Schlüssel variieren je nach Gerätetyp, an den Sie liefern. Weitere Informationen zu plattformspezifischen Benachrichtigungsschlüsseln finden Sie im Folgenden:

Weitere Informationen zu FCM-Nachrichtentypen finden Sie unter Nachrichtentypen in der Firebase-Dokumentation von Google.

Verwenden der FCM v1-Payload-Struktur zum Senden von Nachrichten

Wenn Sie zum ersten Mal eine FCM-Anwendung erstellen oder die Funktionen von FCM v1 nutzen möchten, können Sie sich dafür entscheiden, eine FCM v1-formatierte Payload zu senden. Dazu müssen Sie den Schlüssel der obersten Ebene angeben. fcmV1Message Weitere Informationen zum Erstellen von FCM v1-Payloads finden Sie unter Migration von Legacy-FCM APIs zu HTTP v1 und Plattformübergreifendes Anpassen einer Nachricht in der Firebase-Dokumentation von Google.

FCM v1-Beispielnutzlast, die an Amazon SNS gesendet wurde:

Anmerkung

Der im folgenden Beispiel verwendete GCM Schlüsselwert muss als Zeichenfolge kodiert werden, wenn eine Benachrichtigung mit Amazon SNS veröffentlicht wird.

{ "GCM": "{ \"fcmV1Message\": { \"validate_only\": false, \"message\": { \"notification\": { \"title\": \"string\", \"body\": \"string\" }, \"data\": { \"dataGen\": \"priority message\" }, \"android\": { \"priority\": \"high\", \"notification\": { \"body_loc_args\": [\"string\"], \"title_loc_args\": [\"string\"], \"sound\": \"string\", \"title_loc_key\": \"string\", \"title\": \"string\", \"body\": \"string\", \"click_action\": \"clicky_clacky\", \"body_loc_key\": \"string\" }, \"data\": { \"dataAndroid\": \"priority message\" }, \"ttl\": \"10023.32s\" }, \"apns\": { \"payload\": { \"aps\": { \"alert\": { \"subtitle\": \"string\", \"title-loc-args\": [\"string\"], \"title-loc-key\": \"string\", \"loc-args\": [\"string\"], \"loc-key\": \"string\", \"title\": \"string\", \"body\": \"string\" }, \"category\": \"Click\", \"content-available\": 0, \"sound\": \"string\", \"badge\": 5 } } }, \"webpush\": { \"notification\": { \"badge\": \"5\", \"title\": \"string\", \"body\": \"string\" }, \"data\": { \"dataWeb\": \"priority message\" } } } } }" }

Achten Sie beim Senden einer JSON-Nutzlast darauf, das message-structure Attribut in Ihre Anfrage aufzunehmen und es auf zu setzen. json

CLI-Beispiel:

aws sns publish --topic $TOPIC_ARN --message '{"GCM": "{\"fcmV1Message\": {\"message\":{\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"android\":{\"priority\":\"high\",\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"data\":{\"customAndroidDataKey\":\"custom key value\"},\"ttl\":\"0s\"},\"apns\":{\"payload\":{\"aps\":{\"alert\":{\"title\":\"string\", \"body\":\"string\"},\"content-available\":1,\"badge\":5}}},\"webpush\":{\"notification\":{\"badge\":\"URL\",\"body\":\"Test\"},\"data\":{\"customWebpushDataKey\":\"priority message\"}},\"data\":{\"customGeneralDataKey\":\"priority message\"}}}}", "default": "{\"notification\": {\"title\": \"test\"}"}' --region $REGION --message-structure json

Weitere Informationen zum Senden von Payloads im FCM v1-Format finden Sie in der Firebase-Dokumentation von Google:

Verwenden der veralteten Payload-Struktur zum Senden von Nachrichten an die FCM v1-API

Bei der Migration zu FCM v1 müssen Sie die Payload-Struktur, die Sie für Ihre älteren Anmeldeinformationen verwendet haben, nicht ändern. Amazon SNS wandelt Ihre Payload in die neue FCM v1-Payload-Struktur um und sendet sie an Google.

Payload-Format der Eingabe-Nachricht:

{ "GCM": "{\"notification\": {\"title\": \"string\", \"body\": \"string\", \"android_channel_id\": \"string\", \"body_loc_args\": [\"string\"], \"body_loc_key\": \"string\", \"click_action\": \"string\", \"color\": \"string\", \"icon\": \"string\", \"sound\": \"string\", \"tag\": \"string\", \"title_loc_args\": [\"string\"], \"title_loc_key\": \"string\"}, \"data\": {\"message\": \"priority message\"}}" }

Nachricht an Google gesendet:

{ "message": { "token": "***", "notification": { "title": "string", "body": "string" }, "android": { "priority": "high", "notification": { "body_loc_args": [ "string" ], "title_loc_args": [ "string" ], "color": "string", "sound": "string", "icon": "string", "tag": "string", "title_loc_key": "string", "title": "string", "body": "string", "click_action": "string", "channel_id": "string", "body_loc_key": "string" }, "data": { "message": "priority message" } }, "apns": { "payload": { "aps": { "alert": { "title-loc-args": [ "string" ], "title-loc-key": "string", "loc-args": [ "string" ], "loc-key": "string", "title": "string", "body": "string" }, "category": "string", "sound": "string" } } }, "webpush": { "notification": { "icon": "string", "tag": "string", "body": "string", "title": "string" }, "data": { "message": "priority message" } }, "data": { "message": "priority message" } } }

Potenzielle Risiken

  • Die Zuordnung von Legacy zu Version 1 unterstützt weder den Apple Push Notification Service (APNS) headers noch die fcm_options Schlüssel. Wenn Sie diese Felder verwenden möchten, senden Sie eine FCM v1-Payload.

  • In einigen Fällen benötigt FCM v1 Nachrichtenkopfzeilen, um stille Benachrichtigungen an Ihre Geräte zu senden. APNs Wenn Sie derzeit stille Benachrichtigungen an Ihre APNs Geräte senden, funktionieren diese mit dem älteren Ansatz nicht. Stattdessen empfehlen wir, die FCM v1-Payload zu verwenden, um unerwartete Probleme zu vermeiden. Eine Liste der APNs Header und wofür sie verwendet werden, findest du unter Kommunizieren mit APNs im Apple Developer Guide.

  • Wenn Sie beim Senden Ihrer Benachrichtigung das TTL Amazon SNS SNS-Attribut verwenden, wird es nur im android Feld aktualisiert. Wenn Sie das TTL APNS-Attribut festlegen möchten, verwenden Sie die FCM v1-Payload.

  • Die webpush Schlüssel androidapns, und werden zugeordnet und mit allen bereitgestellten relevanten Schlüsseln gefüllt. Wenn Sie beispielsweise angeben, was ein Schlüssel isttitle, der von allen drei Plattformen gemeinsam genutzt wird, füllt die FCM-v1-Zuordnung alle drei Plattformen mit dem von Ihnen angegebenen Titel auf.

  • Bei einigen von Plattformen gemeinsam genutzten Schlüsseln werden unterschiedliche Werttypen erwartet. Beispielsweise apns erwartet der badge Schlüssel, an den übergeben wurde, einen Integer-Wert, während der badge Schlüssel, an den übergeben wurde, einen String-Wert webpush erwartet. In Fällen, in denen Sie den badge Schlüssel angeben, füllt die FCM v1-Zuordnung nur den Schlüssel auf, für den Sie einen gültigen Wert angegeben haben.

Ereignisse, die bei der FCM-Zustellung fehlschlagen

Die folgende Tabelle enthält den Amazon SNS SNS-Fehlertyp, der den Fehler-/Statuscodes entspricht, die von Google für FCM v1-Benachrichtigungsanfragen erhalten wurden. Alle beobachteten Fehlercodes, die von der FCM v1-API empfangen wurden, stehen Ihnen zur Verfügung, CloudWatch wenn Sie die Versandstatusprotokollierung für Ihre Anwendung einrichten.

FCM-Fehler-/Statuscode Amazon SNS SNS-Fehlertyp Fehlernachricht Ursache und Abhilfemaßnahme

UNREGISTERED

InvalidPlatformToken

Das dem Endpunkt zugeordnete Plattformtoken ist nicht gültig.

Das an Ihren Endpunkt angehängte Geräte-Token ist veraltet oder ungültig. Amazon SNS hat Ihren Endpunkt deaktiviert. Aktualisieren Sie den Amazon SNS SNS-Endpunkt auf das neueste Geräte-Token.

INVALID_ARGUMENT

InvalidNotification

Der Text der Benachrichtigung ist ungültig.

Das Geräte-Token oder die Nachrichten-Payload sind möglicherweise ungültig. Stellen Sie sicher, dass Ihre Nachrichten-Payload gültig ist. Wenn die Nachrichten-Payload gültig ist, aktualisieren Sie den Amazon SNS SNS-Endpunkt auf das neueste Geräte-Token.

SENDER_ID_MISMATCH

InvalidPlatformToken

Das dem Endpunkt zugeordnete Plattform-Token ist nicht gültig.

Die mit dem Geräte-Token verknüpfte Plattformanwendung ist nicht berechtigt, an das Geräte-Token zu senden. Stellen Sie sicher, dass Sie die richtigen FCM-Anmeldeinformationen in Ihrer Amazon SNS-Plattformanwendung verwenden.

UNAVAILABLE

DependencyUnavailable

Die Abhängigkeit ist nicht verfügbar.

FCM konnte die Anfrage nicht rechtzeitig bearbeiten. Alle von Amazon SNS ausgeführten Wiederholungen sind fehlgeschlagen. Sie können diese Nachrichten in einer Warteschlange (Dead-Letter Queue, DLQ) speichern und sie zu einem späteren Zeitpunkt erneut versenden.

INTERNAL

UnexpectedFailure

Unerwarteter Fehler. Bitte wenden Sie sich an Amazon. Fehlerphrase [Interner Fehler].

Beim Versuch, Ihre Anfrage zu bearbeiten, ist auf dem FCM-Server ein Fehler aufgetreten. Alle von Amazon SNS ausgeführten Wiederholungen sind fehlgeschlagen. Sie können diese Nachrichten in einer Warteschlange (Dead-Letter Queue, DLQ) speichern und sie zu einem späteren Zeitpunkt erneut versenden.

THIRD_PARTY_AUTH_ERROR

InvalidCredentials

Die Anmeldeinformationen für die Plattformanwendung sind nicht gültig.

Eine Nachricht, die an ein iOS-Gerät oder ein Webpush-Gerät gerichtet war, konnte nicht gesendet werden. Stellen Sie sicher, dass Ihre Entwicklungs- und Produktionsanmeldedaten gültig sind.

QUOTA_EXCEEDED

Throttled

Die Anfrage wurde von [gcm] gedrosselt.

Ein Nachrichtenratenkontingent, ein Gerätenachrichtenratenkontingent oder ein Themen-Nachrichtenratenkontingent wurde überschritten. Informationen zur Behebung dieses Problems finden Sie ErrorCodein der Firebase-Dokumentation von Google.

PERMISSION_DENIED

InvalidNotification

Der Text der Benachrichtigung ist ungültig.

Im PERMISSION_DENIED Ausnahmefall ist der Aufrufer (Ihre FCM-Anwendung) nicht berechtigt, den angegebenen Vorgang in der Nutzlast auszuführen. Navigieren Sie zu Ihrer FCM-Konsole und vergewissern Sie sich, dass in Ihren Anmeldeinformationen die erforderlichen API-Aktionen aktiviert sind.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.