Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan titik akhir SNS platform Amazon untuk notifikasi seluler
Saat aplikasi dan perangkat seluler terdaftar dengan layanan notifikasi push, layanan notifikasi push mengembalikan token perangkat. Amazon SNS menggunakan token perangkat untuk membuat titik akhir seluler, yang dapat mengirim pesan pemberitahuan push langsung. Untuk informasi selengkapnya, silakan lihat Prasyarat untuk pemberitahuan pengguna Amazon SNS dan Menyiapkan pemberitahuan push dengan Amazon SNS.
Bagian ini menjelaskan pendekatan yang disarankan untuk membuat endpoint platform.
Membuat endpoint platform
Untuk mendorong notifikasi ke aplikasi dengan AmazonSNS, token perangkat aplikasi tersebut harus terlebih dahulu terdaftar di Amazon SNS dengan memanggil tindakan titik akhir platform buat. Tindakan ini mengambil Amazon Resource Name (ARN) dari aplikasi platform dan token perangkat sebagai parameter dan mengembalikan titik akhir platform yang dibuat. ARN
CreatePlatformEndpoint
Tindakan tersebut melakukan hal berikut:
-
Jika endpoint platform sudah ada, jangan membuatnya lagi. Kembali ke pemanggil titik ARN akhir platform yang ada.
-
Jika titik akhir platform dengan token perangkat yang sama tetapi pengaturan yang berbeda sudah ada, jangan membuatnya lagi. Lempar pengecualian ke pemanggil.
-
Jika titik akhir platform tidak ada, buatlah. Kembali ke pemanggil titik ARN akhir platform yang baru dibuat.
Anda tidak boleh langsung memanggil tindakan buat endpoint platform setiap kali aplikasi dimulai, karena pendekatan ini tidak selalu menyediakan endpoint yang berfungsi. Hal ini dapat terjadi, misalnya, saat aplikasi dihapus dan diinstal ulang pada perangkat yang sama dan endpoint untuk itu sudah ada tetapi dinonaktifkan. Proses pendaftaran yang berhasil harus memenuhi hal-hal berikut:
-
Pastikan endpoint platform ada untuk kombinasi aplikasi-perangkat ini.
-
Pastikan token perangkat di endpoint platform adalah token perangkat valid terbaru.
-
Pastikan endpoint platform diaktifkan dan siap digunakan.
Kode semu
Kode semu berikut menjelaskan praktik yang disarankan untuk membuat endpoint platform yang berfungsi, saat ini, dan diaktifkan dalam berbagai kondisi awal. Pendekatan ini berfungsi baik ini pertama kali aplikasi terdaftar atau tidak, apakah endpoint platform untuk aplikasi ini sudah ada, dan apakah endpoint platform diaktifkan, memiliki token perangkat yang benar, dan seterusnya. Aman untuk memanggilnya beberapa kali berturut-turut, karena tidak akan membuat endpoint platform duplikat atau mengubah endpoint platform yang ada jika sudah diperbarui dan diaktifkan.
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
Pendekatan ini dapat digunakan kapan saja aplikasi ingin mendaftar atau mendaftar ulang sendiri. Ini juga dapat digunakan saat memberi tahu Amazon SNS tentang perubahan token perangkat. Dalam hal ini, Anda cukup memanggil tindakan dengan nilai token perangkat terbaru. Beberapa hal yang perlu diperhatikan tentang pendekatan ini adalah:
-
Ada dua kasus di mana ia dapat memanggil tindakan buat endpoint platform. Ini dapat disebut di awal, di mana aplikasi tidak mengetahui titik akhir platformnya sendiriARN, seperti yang terjadi selama pendaftaran pertama kali. Ini juga disebut jika panggilan
GetEndpointAttributes
tindakan awal gagal dengan pengecualian yang tidak ditemukan, seperti yang akan terjadi jika aplikasi mengetahui titik akhirnya ARN tetapi telah dihapus. -
GetEndpointAttributes
Tindakan ini dipanggil untuk memverifikasi status titik akhir platform bahkan jika titik akhir platform baru saja dibuat. Ini terjadi ketika endpoint platform sudah ada tetapi dinonaktifkan. Dalam hal ini, tindakan buat endpoint platform berhasil tetapi tidak mengaktifkan endpoint platform, jadi Anda harus memeriksa ulang status endpoint platform sebelum mengembalikan kesuksesan.
AWS SDKcontoh
Kode berikut menunjukkan bagaimana menerapkan kode semu sebelumnya menggunakan SNS klien Amazon yang disediakan oleh. AWS SDKs
Untuk menggunakan AWS SDK, Anda harus mengkonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial bersama di Panduan Referensi Alat AWS SDKs dan Alat.
Untuk informasi selengkapnya, lihat APITindakan push seluler.
Pemecahan Masalah
Panggilan berulang kali membuat endpoint platform dengan token perangkat yang sudah usang
Khusus untuk FCM titik akhir, Anda mungkin berpikir yang terbaik adalah menyimpan token perangkat pertama yang dikeluarkan aplikasi dan kemudian memanggil titik akhir platform buat dengan token perangkat itu setiap kali saat aplikasi dimulai. Ini mungkin tampak benar karena membebaskan aplikasi dari keharusan mengelola status token perangkat dan Amazon SNS akan secara otomatis memperbarui token perangkat ke nilai terbarunya. Namun, solusi ini memiliki sejumlah masalah serius:
-
Amazon SNS mengandalkan umpan balik dari FCM untuk memperbarui token perangkat yang kedaluwarsa ke token perangkat baru. FCMmenyimpan informasi tentang token perangkat lama untuk beberapa waktu, tetapi tidak tanpa batas waktu. Setelah FCM lupa tentang koneksi antara token perangkat lama dan token perangkat baru, Amazon tidak SNS akan lagi dapat memperbarui token perangkat yang disimpan di titik akhir platform ke nilai yang benar; itu hanya akan menonaktifkan titik akhir platform sebagai gantinya.
-
Aplikasi platform akan berisi beberapa endpoint platform yang sesuai dengan token perangkat yang sama.
-
Amazon SNS memberlakukan kuota pada jumlah titik akhir platform yang dapat dibuat dimulai dengan token perangkat yang sama. Pada akhirnya, pembuatan endpoint baru akan gagal dengan pengecualian parameter yang tidak valid dan pesan kesalahan berikut: "Endpoint ini sudah terdaftar dengan token yang berbeda."
Untuk informasi selengkapnya tentang mengelola FCM titik akhir, lihatSNSManajemen Amazon untuk titik akhir Firebase Cloud Messaging.
Mengaktifkan kembali endpoint platform yang terkait dengan token perangkat yang tidak valid
Ketika platform seluler (seperti APNs atauFCM) memberi tahu Amazon SNS bahwa token perangkat yang digunakan dalam permintaan publikasi tidak valid, Amazon SNS menonaktifkan titik akhir platform yang terkait dengan token perangkat tersebut. Amazon kemudian SNS akan menolak penerbitan berikutnya ke token perangkat itu. Meskipun Anda mungkin berpikir bahwa yang terbaik adalah mengaktifkan kembali endpoint platform dan terus memublikasikan, dalam sebagian besar situasi, hal ini tidak akan berhasil: pesan yang diterbitkan tidak terkirim dan endpoint platform menjadi dinonaktifkan lagi segera setelahnya.
Ini karena token perangkat yang terkait dengan endpoint platform benar-benar tidak valid. Pengiriman tidak dapat berhasil karena tidak lagi sesuai dengan aplikasi yang diinstal. Lain kali diterbitkan ke, platform seluler akan kembali memberi tahu Amazon SNS bahwa token perangkat tidak valid, dan Amazon SNS akan kembali menonaktifkan titik akhir platform.
Untuk mengaktifkan kembali endpoint platform yang dinonaktifkan, endpoint tersebut harus dikaitkan dengan token perangkat yang valid (dengan panggilan tindakan atribut endpoint yang ditetapkan) lalu diaktifkan. Hanya dengan demikian pengiriman ke endpoint platform tersebut akan berhasil. Satu-satunya waktu mengaktifkan kembali endpoint platform tanpa memperbarui token perangkatnya akan berfungsi adalah ketika token perangkat yang terkait dengan endpoint itu dulu tidak valid tetapi kemudian menjadi valid lagi. Hal ini dapat terjadi, misalnya, saat aplikasi dihapus penginstalannya lalu diinstal kembali di perangkat seluler yang sama dan menerima token perangkat yang sama. Pendekatan yang disajikan di atas melakukan ini, memastikan untuk hanya mengaktifkan kembali endpoint platform setelah memverifikasi bahwa token perangkat yang terkait dengannya adalah yang terbaru yang tersedia.