ฝั่งเซิร์ฟเวอร์ของ Firebase Cloud Messaging ประกอบด้วย 2 องค์ประกอบ ได้แก่
- FCM แบ็กเอนด์ที่ Google จัดหาให้
- เซิร์ฟเวอร์แอปหรือสภาพแวดล้อมเซิร์ฟเวอร์ที่เชื่อถือได้อื่นๆ ที่ตรรกะของเซิร์ฟเวอร์ทำงาน เช่น Cloud Functions สำหรับ Firebase หรือสภาพแวดล้อมระบบคลาวด์อื่นๆ ที่ Google จัดการ
เซิร์ฟเวอร์แอปหรือสภาพแวดล้อมเซิร์ฟเวอร์ที่เชื่อถือได้จะส่งคำขอข้อความไปยังFCMแบ็กเอนด์ ซึ่งจะกำหนดเส้นทางข้อความไปยังแอปไคลเอ็นต์ที่ทำงานในอุปกรณ์ของผู้ใช้
ข้อกำหนดสำหรับสภาพแวดล้อมเซิร์ฟเวอร์ที่เชื่อถือได้
สภาพแวดล้อมของเซิร์ฟเวอร์แอปต้องเป็นไปตามเกณฑ์ต่อไปนี้
- ส่งคำขอข้อความที่มีรูปแบบถูกต้องไปยังFCM แบ็กเอนด์ได้
- สามารถจัดการคำขอและส่งคำขออีกครั้งโดยใช้Exponential Backoff
- จัดเก็บข้อมูลเข้าสู่ระบบการให้สิทธิ์เซิร์ฟเวอร์และโทเค็นการลงทะเบียนไคลเอ็นต์ได้อย่างปลอดภัย
ข้อมูลเข้าสู่ระบบที่จำเป็นสำหรับโปรเจ็กต์ Firebase
คุณอาจต้องใช้ข้อมูลเข้าสู่ระบบต่อไปนี้จากโปรเจ็กต์ Firebase ทั้งนี้ขึ้นอยู่กับFCMฟีเจอร์ที่คุณใช้งาน
ข้อมูลเข้าสู่ระบบ | คำอธิบาย |
---|---|
รหัสโปรเจ็กต์ | ตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์ Firebase ของคุณ ซึ่งใช้ในคำขอไปยังFCMปลายทาง HTTP v1 ค่านี้จะอยู่ในแผงFirebaseการตั้งค่า ของคอนโซล |
โทเค็นการลงทะเบียน | สตริงโทเค็นที่ไม่ซ้ำกันซึ่งระบุอินสแตนซ์แอปไคลเอ็นต์แต่ละรายการ โทเค็นการลงทะเบียนจำเป็นสำหรับการรับส่งข้อความแบบอุปกรณ์เดียว และการรับส่งข้อความกลุ่มอุปกรณ์ โปรดทราบว่าต้องเก็บโทเค็นการลงทะเบียน เป็นความลับ |
รหัสผู้ส่ง | ค่าตัวเลขที่ไม่ซ้ำกันซึ่งสร้างขึ้นเมื่อคุณสร้างโปรเจ็กต์ Firebase โดยจะอยู่ในแท็บ Cloud Messaging ของแผงการตั้งค่าในคอนโซล Firebase รหัสผู้ส่งจะเหมือนกับหมายเลขโปรเจ็กต์ ระบบจะใช้รหัสผู้ส่ง เพื่อระบุผู้ส่งแต่ละรายที่ส่งข้อความ ไปยังแอปไคลเอ็นต์ได้ |
โทเค็นเพื่อการเข้าถึง | โทเค็น OAuth 2.0 ที่มีอายุสั้นซึ่งให้สิทธิ์คำขอ ไปยัง HTTP v1 API โทเค็นนี้เชื่อมโยงกับบัญชีบริการที่เป็นของโปรเจ็กต์ Firebase หากต้องการสร้างและหมุนเวียนโทเค็นเพื่อการเข้าถึง ให้ทำตามขั้นตอน ที่อธิบายไว้ในให้สิทธิ์คำขอส่ง |
เลือกตัวเลือกเซิร์ฟเวอร์
คุณจะต้องตัดสินใจเลือกวิธีโต้ตอบกับเซิร์ฟเวอร์ FCM โดยจะใช้ Firebase Admin SDK หรือ FCM HTTP v1 API ก็ได้ เนื่องจาก Firebase Admin SDK รองรับภาษาโปรแกรมยอดนิยมและมีวิธีการที่สะดวกในการจัดการการตรวจสอบสิทธิ์และการให้สิทธิ์ เราจึงขอแนะนำให้ใช้วิธีนี้
ตัวเลือกในการโต้ตอบกับเซิร์ฟเวอร์ FCM มีดังนี้
FCM HTTP v1 API ซึ่งเป็น REST API ที่มีการให้สิทธิ์ที่ปลอดภัย และความสามารถในการรับส่งข้อความข้ามแพลตฟอร์ม ที่ยืดหยุ่น (Firebase Admin SDK สร้างขึ้นตามโปรโตคอลนี้และมีข้อดีทั้งหมด โดยธรรมชาติ)
Firebase Admin SDK
Firebase Admin SDK จะจัดการการตรวจสอบสิทธิ์กับแบ็กเอนด์และอำนวยความสะดวกในการ ส่งข้อความและจัดการการสมัครรับข้อมูลหัวข้อ เมื่อใช้ Firebase Admin SDK คุณจะทำสิ่งต่อไปนี้ได้
- ส่งข้อความไปยังอุปกรณ์แต่ละเครื่อง
- ส่งข้อความไปยังหัวข้อและคำสั่งเงื่อนไขที่ตรงกับหัวข้ออย่างน้อย 1 รายการ
- ส่งข้อความไปยังกลุ่มอุปกรณ์
- ติดตามและเลิกติดตามอุปกรณ์ไปยังและจากหัวข้อ
- สร้างเพย์โหลดข้อความที่ปรับให้เหมาะกับแพลตฟอร์มเป้าหมายต่างๆ
หากต้องการตั้งค่า Firebase Admin SDK โปรดดูเพิ่ม Firebase Admin SDK ลงในเซิร์ฟเวอร์ หากมีโปรเจ็กต์ Firebase อยู่แล้ว ให้เริ่มต้นด้วยเพิ่ม SDK นอกจากนี้ โปรดตรวจสอบว่าได้เปิดใช้ Firebase Cloud Messaging API (V1) ในหน้าการตั้งค่า Cloud Messaging สำหรับโปรเจ็กต์ของคุณแล้ว จากนั้นเมื่อติดตั้ง Firebase Admin SDK แล้ว คุณจะเริ่มเขียนตรรกะเพื่อสร้างคำขอส่งได้
FCM HTTP v1 API
FCM มี FCM HTTP v1 API สำหรับนักพัฒนาแอปที่ต้องการใช้ โปรโตคอลเซิร์ฟเวอร์ดิบ
หากต้องการส่งข้อความ เซิร์ฟเวอร์แอปจะออกคำขอ POST พร้อมส่วนหัว HTTP และเนื้อหา HTTP ที่ประกอบด้วยคู่คีย์-ค่า JSON ดูรายละเอียดเกี่ยวกับตัวเลือกส่วนหัวและเนื้อหาได้ที่หัวข้อส่งข้อความโดยใช้ FCM HTTP v1 API