

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.

# Veröffentlichen von Amazon SNS SNS-Benachrichtigungen mit plattformspezifischen Payloads
<a name="sns-send-custom-platform-specific-payloads-mobile-devices"></a>

Sie können das AWS-Managementkonsole oder Amazon SNS verwenden APIs , um benutzerdefinierte Nachrichten mit plattformspezifischen Nutzlasten an mobile Geräte zu senden. Informationen zur Verwendung von Amazon SNS finden Sie APIs unter [Mobile Push-API-Aktionen](mobile-push-api.md) und die `SNSMobilePush.java` Datei in`[snsmobilepush.zip](samples/snsmobilepush.zip)`. 

## Senden von Nachrichten im JSON-Format
<a name="mobile-push-send-json"></a>

Wenn Sie plattformspezifische Nutzlasten senden, müssen die Daten als Schlüssel-Wert-Paar-Zeichenfolgen im JSON-Format vorliegen und mit Anführungszeichen maskiert sein.

Die folgenden Beispiele zeigen eine benutzerdefinierte Nachricht für die FCM-Plattform.

```
{
"GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"Hello\", \"body\": \"This is a test.\"}, \"data\": {\"dataKey\": \"example\"}}}}"
}
```

## Senden plattformspezifischer Nachrichten
<a name="mobile-push-send-platform"></a>

Sie können nicht nur benutzerdefinierte Daten als Schlüssel-Wert-Paare, sondern auch plattformspezifische Schlüssel-Wert-Paare senden.

Das folgende Beispiel zeigt den Einschluss der FCM-Parameter `time_to_live` und `collapse_key` nach den Schlüsselwertpaaren der benutzerdefinierten Daten im FCM `data`-Parameter .

```
{
"GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"TitleTest\", \"body\": \"Sample message for Android or iOS endpoints.\"}, \"data\":{\"time_to_live\": 3600,\"collapse_key\":\"deals\"}}}}"
}
```

Eine Liste der von jedem der Push-Benachrichtigungsservices in Amazon SNS unterstützten Schlüssel-Wert-Paare finden Sie unter: 

**Wichtig**  
Amazon SNS unterstützt jetzt die Firebase Cloud Messaging (FCM) HTTP v1-API zum Senden von mobilen Push-Benachrichtigungen an Android-Geräte.  
26. März 2024 — Amazon SNS unterstützt die FCM-HTTP-v1-API für Apple-Geräte und Webpush-Ziele. Wir empfehlen Ihnen, Ihre vorhandenen mobilen Push-Anwendungen am oder vor dem 1. Juni 2024 auf die neueste FCM-HTTP-v1-API zu migrieren, um Anwendungsunterbrechungen zu vermeiden.
+ [Payload Key-Referenz](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#/apple_ref/doc/uid/TP40008194-CH17-SW1) in der Dokumentation APNs 
+ [Firebase Cloud Messaging-HTTP-Protokoll](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages) in der FCM-Dokumentation
+ [Senden einer Nachricht](https://developer.amazon.com/sdk/adm/sending-message.html) in der ADM-Dokumentation

## Senden von Nachrichten an eine Anwendung auf mehreren Plattformen
<a name="mobile-push-send-multiplatform"></a>

Um eine Nachricht an eine Anwendung zu senden, die auf Geräten für mehrere Plattformen installiert ist, z. B. FCM und APNs, müssen Sie zuerst die mobilen Endgeräte für ein Thema in Amazon SNS abonnieren und dann die Nachricht zum Thema veröffentlichen.

Das folgende Beispiel zeigt eine Nachricht, die an abonnierte mobile Endpunkte auf FCM und ADM gesendet werden soll APNs: 

```
{ 
  "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for 
one of the notification platforms.",     
  "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }",
  "GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}",
  "ADM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" 
}
```

## Senden von Nachrichten als Warn- oder APNs Hintergrundbenachrichtigung
<a name="mobile-push-send-message-apns-background-notification"></a>

Amazon SNS kann Nachrichten `alert` oder `background` Benachrichtigungen an APNs Werbeanzeigen senden (weitere Informationen finden Sie in der APNs Dokumentation unter [Pushing Background Updates to Your App](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app)).
+ Eine `alert` APNs Benachrichtigung informiert den Benutzer, indem er eine Warnmeldung anzeigt, einen Ton abspielt oder dem Symbol Ihrer Anwendung ein Badge hinzufügt.
+ Eine `background` APNs Benachrichtigung wird aktiviert oder Ihre Anwendung angewiesen, auf den Inhalt der Benachrichtigung zu reagieren, ohne den Benutzer zu informieren.

### Angeben von benutzerdefinierten Header-Werten APNs
<a name="specify-custom-header-value"></a>

Wir empfehlen, benutzerdefinierte Werte für das `AWS.SNS.MOBILE.APNS.PUSH_TYPE` [reservierte Nachrichtenattribut](sns-message-attributes.md#sns-attrib-mobile-reserved) mithilfe der Amazon SNS `Publish` SNS-API-Aktion oder der AWS CLI anzugeben. AWS SDKs Im folgenden CLI-Beispiel wird für das angegebene Thema für `content-available` `1` und für `apns-push-type` `background` festgelegt. 

```
aws sns publish \
--endpoint-url https://sns.us-east-1.amazonaws.com \
--target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \
--message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \
--message-attributes '{ \
  "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \
  "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"}, \
  "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"5"}}' \
--message-structure json
```

**Anmerkung**  
Stellen Sie sicher, dass die JSON-Struktur gültig ist. Fügen Sie nach jedem Schlüssel-Wert-Paar, außer dem letzten, ein Komma hinzu.

### Ableiten des APNs Push-Typ-Headers aus der Nutzlast
<a name="inferring-push-type-header-from-payload"></a>

Wenn Sie den `apns-push-type` APNs Header nicht festlegen, setzt Amazon SNS den Header auf `alert` oder `background` abhängig vom `content-available` Schlüssel im `aps` Wörterbuch Ihrer JSON-formatierten APNs Payload-Konfiguration.

**Anmerkung**  
Amazon SNS kann nur `alert`- oder `background`-Header ableiten, auch wenn der Header `apns-push-type` auf andere Werte gesetzt werden kann.
+ `apns-push-type` wird auf `alert` gesetzt
  + Wenn das `aps`-Verzeichnis einen auf `1` gesetzten `content-available`-Schlüssel und *einen oder mehrere Schlüssel* enthält, die Benutzerinteraktionen auslösen
  + Wenn das `aps`-Verzeichnis einen auf `0` gesetzten `content-available`-Schlüssel enthält *oder* wenn der `content-available`-Schlüssel nicht vorhanden ist
  + Wenn der Wert des `content-available`-Schlüssels keine Ganzzahl und kein boolescher Wert ist
+ `apns-push-type` wird auf `background` gesetzt
  + Wenn das `aps`-Verzeichnis *nur* auf `1` gesetzte `content-available` und *keine anderen Schlüssel* enthält, die Benutzerinteraktionen auslösen.
**Wichtig**  
Wenn Amazon SNS ein unformatiertes Konfigurationsobjekt für APNs als reine Hintergrundbenachrichtigung sendet, müssen Sie `content-available` set to `1` in das Wörterbuch aufnehmen. `aps` Auch wenn benutzerdefinierte Schlüssel eingeschlossen werden können, darf das `aps`-Verzeichnis keine Schlüssel enthalten, die Benutzerinteraktionen (z. B. Warnmeldungen, Abzeichen oder Audiosignale) auslösen.

Es folgt ein Beispiel für ein unformatiertes Konfigurationsobjekt.

```
{
  "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"Bar\",\"Foo2\":123}"
}
```

In diesem Beispiel legt Amazon SNS den `apns-push-type` APNs Header für die Nachricht auf `background` fest. Wenn Amazon SNS erkennt, dass das `apn`-Verzeichnis den `content-available` Schlüssel festgelegt auf `1` enthält, und keine anderen Schlüssel enthält, die Benutzerinteraktionen auslösen können, legt es den Header auf `background`.