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

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

แม้ว่า chrome.gcm จะยังใช้งานได้อยู่ แต่ก็สร้างขึ้นก่อนมาตรฐานพุชมานานกว่า 10 ปี โดยทั่วไปแล้ว แนวทางปฏิบัติแนะนำคือการใช้มาตรฐานเว็บแทนการใช้ 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"]

ตอนนี้คุณมีสิทธิ์เข้าถึง API ของ chrome.gcm แล้ว คุณลงทะเบียนเพื่อฟังข้อความ 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 ได้