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

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

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

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

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

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

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

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

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

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

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

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

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

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

กำหนดค่า chrome.gcm

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

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

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

ฟังข้อความ

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

Firebase ที่ไม่มี Firebase

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

ในช่องและหัวข้อ

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

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

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