Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)
Push Notification
Push Notification หรือ การแจ้งเตือน คือ การที่แอปพลิเคชันนำข้อมูลมาแสดงในแถบแจ้งเตือนของระบบปฏิบัติการนั้นๆ กำหนด ไม่ว่าจะเป็น Mobile(iOS, Android) หรือ Computer ทั่วไปซึ่ง modern browser ในปัจจุบันก็สามารถแสดงแถบแจ้งเตือนได้แล้วNotifications Overview |
เราสามารถแบ่งการแจ้งเตือนออกเป็น 2 แบบ ดังนี้
Local Notification
คือ การที่ app. แสดง notification เอง ไม่มีอะไรเกี่ยวข้องกับ server ใดๆ ปกติแล้วจะแยกได้อีก 2 แบบย่อย คือ แจ้งเตือนตามเวลาที่กำหนด และแจ้งเตือนเป็นรอบๆ เช่น แอปนาฬิกาปลุก แอปแจ้งเตือนนัดหมาย เป็นต้นRemote Notification
คือ การที่ app. รับข้อมูลมาจาก server แบบไม่จำเป็นต้อง request ไปก่อน ตัวอย่างที่ยกมาได้ชัดที่สุดคงหนีไม่พ้น โปรแกรมแชท ต่างๆ ของเครื่องเรานี่แหละครับเมื่อเราส่งข้อความไปหาเพื่อน
สิ่งที่คนทั่วไปเข้าใจ...
สิ่งที่ developer ควรรู้
จะเห็นว่า จริงๆ แล้ว mobile จะต้องเรียกไปที่ server เพื่อให้ server เป็นตัวจัดการข้อมูลก่อน จากนั้นก็ส่งของไปให้ push server เป็นตัวจัดการส่งไปที่เครื่องปลายทาง ซึ่งส่วนที่คือการ Push จริงๆ คือหลังจาก process ที่ server ของเราเป็นต้นไป
ลองมาดูขั้นการทำ Push Notification แบบ step-by-step กัน
Remote Push Notification |
- Register device - อุปกรณ์จะต้องลงทะเบียนไปยัง Cloud Messaging Server* ก่อน
- Get Messaging Token - เมื่อลงทะเบียนสำเร็จจะได้ token ประจำตัวมา ซึ่งมีค่าไม่ซ้ำกับอุปกรณ์ตัวอื่น (แต่ก็มีโอกาสที่ token จะเปลี่ยนค่าได้)
- Store Messaging Token - เมื่ออุปกรณ์ได้ token มาแล้ว เราจำเป็นจะต้องส่งไปเก็บไว้ที่ server ของเราด้วย
- Request for Push Notification - การที่จะส่ง push notification ได้ต้องอาศัย Messaging Token ที่เราได้เก็บไว้ (ข้อ 3) โดยส่งไปพร้อมกับข้อมูลไปยัง Cloud Messaging Server
- Send message to device(s) - ส่วนนี้ Cloud Messaging Server จะเป็นตัวจัดการส่งข้อความของเราไปยังเครื่องปลายทางเอง
**ลำดับและวิธีการอาจแตกต่างกันขึ้นอยู่กับการออกแบบ infrastructure**
Cloud Messaging Server หรือ Push Server
เป็นบริการที่ทำให้เราสามารถส่ง Push Notification ได้ แต่ละเจ้าก็อาจมีขนาดของข้อมูลที่จะส่ง ความสามารถ วิธีการส่ง แตกต่างกันออกไป ทั้งนี้ก็ขึ้นอยู่กับอุปกรณ์ปลายทางด้วยว่าเป็นระบบปฏิบัติการไหน (OS)
- FCM - Firebase Cloud Messaging เป็นบริการจาก Google ที่พัฒนาต่อยอดจาก GCM (Google Cloud Messaging) จากเดิมที่ออกแบบมาเพื่อ Android ปัจจุบันสามารถรองรับทั้ง Android, iOS, Web Application, Unity, C++ เบ็ดเสร็จในตัวเดียว (สมัยนี้ web ก็ push ได้แล้วนะ)
- APNS - Apple Push Notification Service เป็นบริการจาก Apple ก็จะส่งได้แค่ Apple อะนะ
ยังมีบริการอีกหลายเจ้าที่สามารถทำ Push Notification ได้ แต่หลักๆ แล้วผมจะใช้ FCM เพียงแค่ตัวเดียว ตัว Firebase ก็มี GUI สำหรับทดสอบการส่งด้วย และยังสะดวกในการทำ data เพื่อส่งไปยัง Push Server ไม่ต้องเก็บข้อมูลแยกว่าเป็น platform ไหนอีกต่อไป
แถมอีกนิด Firebase เป็นบริการที่อาศัย Cloud platform ประกอบด้วย API ต่างๆ มากมาย และส่วนใหญ่จะฟรี เพื่อให้สะดวกต่อ developer ในการนำไปพัฒนาต่อยอด FCM เป็นแค่ส่วนเดียวเท่านั้น ยังมีบริการอีกมารอทุกท่านไปใช้อยู่ครับ
All of Firebase APIs - Jun 2018 |