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