搭配 chrome.gcm 使用 Firebase 雲端通訊 (FCM)

您可以使用 chrome.gcm 傳送及接收訊息給使用者。由於它以 Firebase 雲端通訊 (FCM) 為基礎,因此您必須設定外部服務。以下操作說明會逐步引導您完成所有必要步驟,以便在擴充功能中順利運作。

雖然 chrome.gcm 支援,但其建立時間超過十年前,就在推送標準開始。一般來說,最佳做法一律使用網路標準,而非擴充功能專用的 API。除非有使用 chrome.gcm 的特定需求,否則建議您使用「推送」

必要條件

如要使用 chrome.gcm,您必須設定 Firebase 帳戶。

Firebase.com 首頁。
Firebase.com 首頁

建立帳戶後,請開啟 Firebase 控制台,選取要使用的現有專案,或是新建一個用於擴充功能的專案。

Firebase 控制台中專案清單的螢幕截圖。
在 Firebase 控制台列出專案

繼續前往雲端通訊的設定頁面

Firebase 雲端通訊設定頁面的螢幕截圖。
Firebase 雲端通訊設定頁面

如果這項專案已有雲端通訊帳戶,您需要複製列出的寄件者 ID。

若您尚未啟用雲端通訊,您必須在 Google Cloud 中的專案啟用 Firebase Cloud Messaging API。在下圖中,您可以看到在 Firebase 設定中直接連至此頁面的連結。

在 Google Cloud 中啟用 Firebase Messaging API 的連結位置螢幕截圖。
在 Firebase 中開啟 Google Cloud 設定連結

啟用後,請返回雲端通訊的設定頁面,然後複製傳送者 ID。

設定 chrome.gcm

現在您已取得來自 Firebase 的寄件者 ID,您可以設定擴充功能來監聽訊息。一開始,請確認已將 gcm 權限新增至擴充功能的 manifest.json

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

你現在可以使用 chrome.gcm API 了。您可以呼叫 chrome.gcm.register 來註冊以監聽推送訊息

監聽訊息

擴充功能註冊傳送者 ID 後,您必須新增程式碼來處理收到的訊息。

Firebase 不含 Firebase

雖然 chrome.gcm 一律會透過 Firebase,但您可以將 Firebase 設為外部推送訊息供應商的 Proxy。供應商通常會明確列出對 Chrome 擴充功能的支援,但任何支援 Firebase 舊版推播通知的供應商都能正常運作。如果您的供應商列出 Firebase 舊版推播通知的支援,請試用看看。如果遇到問題,供應商支援團隊應能釐清會有哪些限制。

精選頻道和主題

chrome.gcm 正在使用舊版 Firebase Messaging API。由於舊版 API 不支援訊息管道,因此這一點非常重要。推送的每則訊息都會傳送至每個用戶端。如果使用者的擴充功能僅對一小部分訊息感興趣,您就必須自行篩選。

Firebase 原本可設為免費帳戶,但系統會在用量超過特定用量門檻時向您收費。如果您打算傳送訊息給特定群組,用戶端篩選的最終費用可能會超出預期的費用。如要解決這個問題,您可以建立多個專案來複製個別管道 (每個管道一個專案和一個寄件者 ID)。任何指定的擴充功能都可以註冊多個寄件者 ID,上限為 100。

此外,如果您需要管道支援,或想在不透過 Firebase 的情況下使用推播通知,可以使用 Push API