ใช้ Firebase Cloud Messaging (FCM) กับ browser.gcm

คุณสามารถส่งและรับข้อความไปยังผู้ใช้ปลายทางด้วย browser.gcm เนื่องจากสร้างขึ้นบน Firebase Cloud Messaging (FCM) จึงต้องอาศัยบริการภายนอกที่คุณต้องตั้งค่า วิธีการนี้จะแนะนำขั้นตอนที่จำเป็นทั้งหมดเพื่อให้คุณใช้งานในส่วนขยายได้

แม้ว่าเราจะยังคงรองรับ browser.gcm แต่เราก็สร้างขึ้นเมื่อ 10 กว่าปีก่อนที่จะมีมาตรฐาน Push โดยทั่วไปแล้ว แนวทางปฏิบัติแนะนำคือการใช้มาตรฐานเว็บ มากกว่า API เฉพาะส่วนขยายเสมอ เราขอแนะนำให้ใช้ Push เว้นแต่คุณจะมีความจำเป็นเฉพาะในการใช้ browser.gcm

ข้อกำหนดเบื้องต้น

หากต้องการใช้ browser.gcm คุณจะต้องตั้งค่าบัญชี Firebase

หน้าแรกของ Firebase.com
หน้าแรกของ Firebase.com

เมื่อสร้างบัญชีแล้ว คุณจะต้องเปิดคอนโซล Firebase แล้วเลือกโปรเจ็กต์ที่มีอยู่เพื่อใช้ หรือสร้างโปรเจ็กต์ใหม่ สำหรับส่วนขยาย

ภาพหน้าจอของรายการโปรเจ็กต์ในคอนโซล Firebase
รายการโปรเจ็กต์ในคอนโซล Firebase

ไปที่หน้าการตั้งค่าสำหรับ Cloud Messaging

ภาพหน้าจอของหน้าการตั้งค่า Firebase Cloud Messaging
หน้าการตั้งค่า Firebase Cloud Messaging

หากมีบัญชีการรับส่งข้อความผ่านระบบคลาวด์ในโปรเจ็กต์นี้อยู่แล้ว ให้คัดลอกรหัสผู้ส่งที่เป็นตัวเลขที่แสดง

หากไม่ได้เปิดใช้ Cloud Messaging คุณจะต้องเปิดใช้ Firebase Cloud Messaging API สำหรับโปรเจ็กต์ภายใน Google Cloud ในรูปภาพต่อไปนี้ คุณจะเห็นตำแหน่งที่มีลิงก์ไปยังหน้านี้โดยตรงในการตั้งค่า Firebase

ภาพหน้าจอของตำแหน่งลิงก์เพื่อเปิดใช้ Firebase Messaging API ใน Google Cloud
การเปิดลิงก์การตั้งค่า Google Cloud ใน Firebase

เมื่อเปิดใช้แล้ว ให้กลับไปที่หน้าการตั้งค่าสำหรับ Cloud Messaging แล้วคัดลอกรหัสผู้ส่ง

กำหนดค่า browser.gcm

ตอนนี้คุณมีรหัสผู้ส่งจาก Firebase แล้ว คุณสามารถกำหนดค่าส่วนขยาย ให้รอรับข้อความได้ ก่อนอื่น ให้ตรวจสอบว่าคุณได้เพิ่มgcm สิทธิ์ในmanifest.jsonของส่วนขยายแล้ว

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

ตอนนี้คุณมีสิทธิ์เข้าถึง browser.gcm API แล้ว คุณลงทะเบียนเพื่อฟังข้อความพุชได้โดยโทรไปที่ browser.gcm.register

ฟังข้อความ

เมื่อส่วนขยายลงทะเบียนรหัสผู้ส่งแล้ว คุณต้องเพิ่มโค้ดเพื่อจัดการ ข้อความขาเข้า

Firebase แบบไม่มี Firebase

แม้ว่า browser.gcm จะผ่าน Firebase เสมอ แต่คุณก็กำหนดค่า Firebase ให้ทำหน้าที่เป็นพร็อกซีสำหรับผู้ให้บริการรับส่งข้อความพุชภายนอกได้ โดยปกติแล้ว ผู้ให้บริการจะระบุการรองรับส่วนขยาย Chrome อย่างชัดเจน แต่ผู้ให้บริการที่รองรับข้อความพุชเดิมของ Firebase ควรใช้งานได้ หากผู้ให้บริการระบุว่ารองรับ Push Notification เดิมของ Firebase ให้ลองใช้ หากพบปัญหา การสนับสนุนจากผู้ให้บริการควรชี้แจงข้อจำกัดที่ อาจมีผลบังคับใช้ได้

เกี่ยวกับช่องและหัวข้อ

browser.gcm ใช้ Firebase Messaging API แบบเดิม ซึ่งเป็นสิ่งสำคัญ เนื่องจาก API เวอร์ชันเดิมไม่รองรับช่องข้อความ ทุกข้อความ ที่พุชจะส่งไปยังไคลเอ็นต์ทุกราย หากส่วนขยายของผู้ใช้สนใจเฉพาะ ชุดย่อยของข้อความ คุณจะต้องกรองด้วยตนเอง

แม้ว่า Firebase จะเริ่มต้นด้วยบัญชีฟรี แต่ระบบจะเรียกเก็บเงินเมื่อคุณใช้งานเกินเกณฑ์การใช้งานที่กำหนด หากคุณวางแผนที่จะส่งข้อความไปยังกลุ่มที่เฉพาะเจาะจง การกรองฝั่งไคลเอ็นต์อาจมีค่าใช้จ่ายมากกว่าที่ควรจะเป็น คุณสามารถ แก้ไขปัญหานี้ได้โดยการสร้างโปรเจ็กต์หลายรายการเพื่อจำลองช่องแต่ละช่อง (1 โปรเจ็กต์และ 1 รหัสผู้ส่งสำหรับแต่ละช่อง) ส่วนขยายใดก็ตามสามารถ ลงทะเบียนรหัสผู้ส่งได้หลายรายการ สูงสุด 100 รายการ

หรือหากต้องการรับการสนับสนุนเกี่ยวกับช่องทาง หรือต้องการใช้ข้อความ Push โดยไม่ต้องผ่าน Firebase คุณสามารถใช้ Push API ได้