Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Utilizzo dei payload di Google Firebase Cloud Messaging v1 in Amazon SNS

Modalità Focus
Utilizzo dei payload di Google Firebase Cloud Messaging v1 in Amazon SNS - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Amazon SNS supporta l'utilizzo dell'API HTTP v1 di FCM per inviare notifiche a destinazioni Android, iOS e Webpush. Questo argomento fornisce esempi della struttura del payload durante la pubblicazione di notifiche push per dispositivi mobili utilizzando la CLI o l'API Amazon SNS.

Puoi includere i seguenti tipi di messaggi nel tuo payload quando invii una notifica FCM:

  • Messaggio di dati: un messaggio di dati viene gestito dall'app client e contiene coppie chiave-valore personalizzate. Quando si crea un messaggio di dati, è necessario includere la data chiave con un oggetto JSON come valore, quindi inserire le coppie chiave-valore personalizzate.

  • Messaggio di notifica o messaggio visualizzato: un messaggio di notifica contiene un set predefinito di chiavi gestite da FCM SDK. Queste chiavi variano a seconda del tipo di dispositivo a cui vengono consegnate. Per ulteriori informazioni sui tasti di notifica specifici della piattaforma, consulta quanto segue:

Per ulteriori informazioni sui tipi di messaggi FCM, consulta Tipi di messaggio nella documentazione di Firebase di Google.

Utilizzo della struttura di payload FCM v1 per inviare messaggi

Se state creando un'applicazione FCM per la prima volta o desiderate sfruttare le funzionalità di FCM v1, potete scegliere di inviare un payload in formato FCM v1. A tale scopo, è necessario includere la chiave di primo livello. fcmV1Message Per ulteriori informazioni sulla creazione di payload FCM v1, consulta Migrazione da FCM legacy APIs a HTTP v1 e Personalizzazione di un messaggio tra piattaforme nella documentazione Firebase di Google.

Payload di esempio FCM v1 inviato ad Amazon SNS:

Nota

Il valore della GCM chiave utilizzato nell'esempio seguente deve essere codificato come stringa quando si pubblica una notifica tramite Amazon SNS.

{ "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\" } } } } }" }

Quando invii un payload JSON, assicurati di includere l'message-structureattributo nella richiesta e di impostarlo su. json

Esempio di CLI:

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

Per ulteriori informazioni sull'invio di payload in formato FCM v1, consulta quanto segue nella documentazione Firebase di Google:

Utilizzo della struttura di payload legacy per inviare messaggi all'API FCM v1

Durante la migrazione a FCM v1, non è necessario modificare la struttura del payload utilizzata per le credenziali legacy. Amazon SNS trasforma il tuo payload nella nuova struttura di payload FCM v1 e lo invia a Google.

Formato del payload del messaggio di input:

{ "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\"}}" }

Messaggio inviato a Google:

{ "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" } } }

Rischi potenziali

  • La mappatura dalla versione precedente alla versione 1 non supporta l'Apple Push Notification Service (APNS) headers o le chiavi. fcm_options Se desideri utilizzare questi campi, invia un payload FCM v1.

  • In alcuni casi, le intestazioni dei messaggi sono necessarie da FCM v1 per inviare notifiche silenziose ai tuoi dispositivi. APNs Se attualmente invii notifiche silenziose ai tuoi APNs dispositivi, queste non funzioneranno con l'approccio precedente. Consigliamo invece di utilizzare il payload FCM v1 per evitare problemi imprevisti. Per un elenco delle APNs intestazioni e per cosa vengono utilizzate, consulta Communicating with APNs nella Apple Developer Guide.

  • Se utilizzi l'attributo TTL Amazon SNS per inviare la notifica, questo verrà aggiornato solo sul android campo. Se desideri impostare l'attributo TTL APNS, utilizza il payload FCM v1.

  • Le webpush chiavi androidapns, e verranno mappate e compilate con tutte le chiavi pertinenti fornite. Ad esempio, se fornisci title una chiave condivisa tra tutte e tre le piattaforme, la mappatura FCM v1 popolerà tutte e tre le piattaforme con il titolo che hai fornito.

  • Alcune chiavi condivise tra piattaforme prevedono tipi di valori diversi. Ad esempio, la badge chiave passata a apns prevede un valore intero, mentre la badge chiave passata a webpush prevede un valore String. Nei casi in cui si fornisce la badge chiave, la mappatura FCM v1 popolerà solo la chiave per la quale è stato fornito un valore valido.

Eventi di errore di consegna FCM

La tabella seguente fornisce il tipo di errore di Amazon SNS che corrisponde ai codici di errore/stato ricevuti da Google per le richieste di notifica FCM v1. Tutti i codici di errore osservati ricevuti dall'API FCM v1 sono disponibili CloudWatch quando configuri la registrazione dello stato di consegna per la tua applicazione.

Codice di errore/stato FCM Tipo di errore Amazon SNS Messaggio di errore Causa e mitigazione

UNREGISTERED

InvalidPlatformToken

Il token di piattaforma associato all'endpoint non è valido.

Il token del dispositivo collegato all'endpoint è obsoleto o non valido. Amazon SNS ha disabilitato il tuo endpoint. Aggiorna l'endpoint Amazon SNS al token del dispositivo più recente.

INVALID_ARGUMENT

InvalidNotification

Il corpo della notifica non è valido.

Il token del dispositivo o il payload del messaggio potrebbero non essere validi. Verifica che il payload del messaggio sia valido. Se il payload del messaggio è valido, aggiorna l'endpoint Amazon SNS al token del dispositivo più recente.

SENDER_ID_MISMATCH

InvalidPlatformToken

Il token della piattaforma associato all'endpoint non è valido.

L'applicazione della piattaforma associata al token del dispositivo non dispone dell'autorizzazione per l'invio al token del dispositivo. Verifica di utilizzare le credenziali FCM corrette nell'applicazione della piattaforma Amazon SNS.

UNAVAILABLE

DependencyUnavailable

La dipendenza non è disponibile.

FCM non è riuscito a elaborare la richiesta in tempo. Tutti i nuovi tentativi eseguiti da Amazon SNS non sono riusciti. Puoi archiviare questi messaggi in una coda di lettere morte (DLQ) e reindirizzarli in un secondo momento.

INTERNAL

UnexpectedFailure

Errore imprevisto; contatta Amazon. Frase di errore [Errore interno].

Il server FCM ha riscontrato un errore durante il tentativo di elaborare la richiesta. Tutti i nuovi tentativi eseguiti da Amazon SNS non sono riusciti. Puoi archiviare questi messaggi in una coda di lettere morte (DLQ) e reindirizzarli in un secondo momento.

THIRD_PARTY_AUTH_ERROR

InvalidCredentials

Le credenziali dell'applicazione della piattaforma non sono valide.

Non è stato possibile inviare un messaggio indirizzato a un dispositivo iOS o Webpush. Verifica che le tue credenziali di sviluppo e produzione siano valide.

QUOTA_EXCEEDED

Throttled

Richiesta limitata da [gcm].

È stata superata la quota per la frequenza dei messaggi, la quota per la velocità dei messaggi del dispositivo o la quota relativa alla frequenza dei messaggi per argomento. Per informazioni su come risolvere questo problema, consulta la ErrorCodedocumentazione Firebase di Google.

PERMISSION_DENIED

InvalidNotification

Il corpo della notifica non è valido.

In caso di PERMISSION_DENIED eccezione, il chiamante (l'applicazione FCM) non è autorizzato a eseguire l'operazione specificata nel payload. Accedi alla console FCM e verifica che le tue credenziali abbiano abilitato le azioni API richieste.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.