Penerbitan dengan muatan khusus platform - Amazon Simple Notification Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penerbitan dengan muatan khusus platform

Anda dapat menggunakan API Amazon SNS AWS Management Console atau Amazon untuk mengirim pesan khusus dengan muatan khusus platform ke perangkat seluler. Untuk informasi tentang menggunakan Amazon SNS API, lihat Tindakan API push seluler dan file SNSMobilePush.java di snsmobilepush.zip.

Mengirim pesan berformat JSON

Saat Anda mengirim muatan khusus platform, data harus diformat sebagai string pasangan nilai kunci JSON, dengan tanda kutip diloloskan.

Contoh berikut menunjukkan pesan khusus untuk platform FCM.

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

Mengirim pesan khusus platform

Selain mengirim data khusus sebagai pasangan nilai kunci, Anda dapat mengirim pasangan nilai kunci khusus platform.

Contoh berikut menunjukkan penyertaan parameter FCM time_to_live dan collapse_key setelah pasangan nilai kunci data kustom dalam parameter data FCM.

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

Untuk daftar pasangan kunci-nilai yang didukung oleh masing-masing layanan notifikasi push yang didukung di Amazon SNS, lihat berikut ini:

penting

Amazon SNS sekarang mendukung Firebase Cloud Messaging (FCM) HTTP v1 API untuk mengirimkan notifikasi push seluler ke perangkat Android.

26 Maret 2024 - Amazon SNS mendukung FCM HTTP v1 API untuk perangkat Apple dan tujuan Webpush. Kami menyarankan Anda memigrasikan aplikasi push seluler yang ada ke FCM HTTP v1 API terbaru pada atau sebelum 1 Juni 2024 untuk menghindari gangguan aplikasi.

Mengirim pesan ke aplikasi di berbagai platform

Untuk mengirim pesan ke aplikasi yang diinstal pada perangkat untuk beberapa platform, seperti FCM dan APN, Anda harus terlebih dahulu berlangganan endpoint seluler ke suatu topik di Amazon SNS dan kemudian memublikasikan pesan ke topik tersebut.

Contoh berikut menunjukkan pesan untuk dikirim ke endpoint seluler berlangganan di APN, FCM, dan ADM:

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

Mengirim pesan ke APN sebagai peringatan atau notifikasi latar belakang

Amazon SNS dapat mengirim pesan ke APN sebagai notifikasi alert atau background (untuk informasi selengkapnya, lihat Mendorong Pembaruan Latar Belakang ke Aplikasi Anda di dokumentasi APN).

  • Notifikasi APN alert memberi tahu pengguna dengan menampilkan pesan peringatan, memutar suara, atau menambahkan lencana ke ikon aplikasi Anda.

  • Notifikasi APN background membangunkan atau menginstruksikan aplikasi Anda untuk bertindak berdasarkan konten notifikasi, tanpa memberi tahu pengguna.

Menentukan nilai header APN kustom

Sebaiknya tentukan nilai kustom untuk atribut pesan yang AWS.SNS.MOBILE.APNS.PUSH_TYPE dicadangkan menggunakan tindakan Amazon Publish SNS API AWS , SDK, atau file. AWS CLI Contoh CLI berikut menyetel content-available ke 1 dan apns-push-type ke background untuk topik yang ditentukan.

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

Menyimpulkan header jenis push APN dari muatan

Jika Anda tidak menyetel header APN apns-push-type, Amazon SNS menyetel header ke alert atau background bergantung pada kunci content-available dalam kamus aps konfigurasi muatan APN berformat JSON.

catatan

Amazon SNS hanya dapat menyimpulkan header alert atau background, meskipun header apns-push-type dapat diatur ke nilai lain.

  • apns-push-type diatur ke alert

    • Jika kamus aps berisi content-available yang diatur ke 1 dan satu atau beberapa kunci yang memicu interaksi pengguna.

    • Jika kamus aps berisi content-available yang diatur ke 0 atau jika kunci content-available tidak ada.

    • Jika nilai kunci content-available bukan bilangan bulat atau Boolean.

  • apns-push-type diatur ke background

    • Jika kamus aps hanya berisi content-available yang diatur ke 1 dan tidak ada kunci lain yang memicu interaksi pengguna.

      penting

      Jika Amazon SNS mengirimkan objek konfigurasi mentah untuk APN sebagai notifikasi latar belakang saja, Anda harus menyertakan content-available yang diatur ke 1 dalam kamus aps. Meskipun Anda dapat menyertakan kunci kustom, kamus aps tidak boleh berisi kunci apa pun yang memicu interaksi pengguna (misalnya, peringatan, lencana, atau suara).

Berikut ini adalah contoh objek konfigurasi mentah.

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

Dalam contoh ini, Amazon SNS menyetel APN header apns-push-type untuk pesan ke background. Saat Amazon SNS mendeteksi bahwa kamus apn berisi kunci content-available yang diatur ke 1—dan tidak berisi kunci lain yang dapat memicu interaksi pengguna—itu menyetel header ke background.