Saya mencoba mengirim pemberitahuan ke perangkat iOS menggunakan Firebase Cloud Messaging - setiap proyek IOS di Firebase Console memiliki Kunci Auth P8 APN yang valid, yang baru dibuat dari akun pengembang Apple untuk tujuan ini.
Saya menggunakan pendekatan ini:
curl -X POST \
https://fcm.googleapis.com/fcm/send \
-H 'Authorization: key=<My Key>' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"to": "<Device Token>",
"notification": {
"title": "Push Notification Test to IOS",
"body":"Push Notification Test to IOS"
},
"data": {
"message": "Push Notification Test to IOS"
}
}'
Hal ini menyebabkan kesalahan berikut dari FCM:
{
"multicast_id": <Id>,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidApnsCredential"
}
]
}
Jika saya menghapus blok "pemberitahuan" dari pesan, FCM merespons dengan sukses, namun tidak ada yang diterima di perangkat.
Saya dapat mengirim dan menerima notifikasi menggunakan contoh pesan di atas ke perangkat Android dengan baik.
dokumentasi FCM menyarankan hal tersebut ketika blok "pemberitahuan" disertakan, FCM mencoba mengirim melalui APN ketika token ditujukan untuk perangkat iOS:
Jika payload notifikasi disediakan, atau opsi content_available diatur ke true untuk pesan ke perangkat iOS, pesan akan dikirim melalui APN, jika tidak maka akan dikirim melalui server koneksi FCM.
Apa yang saya coba:
- Menyegarkan token
- Menunggu 24 jam hingga token disebarkan di lingkungan server APN dan FCM
- menggunakan sertifikat P12
- menggunakan sertifikat P8
- memastikan aplikasi iOS mengizinkan notifikasi di Xcode
- memastikan akun Pengembang Apple memiliki aplikasi yang mengizinkan pemberitahuan
- memastikan Bundle Id di plist, FCM dan akun Apple sudah benar
- mencoba kunci lama FCM dan kunci server