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

您可以使用 chrome.gcm 向使用者傳送及接收訊息。由於這項功能是建構在 Firebase 雲端通訊 (FCM) 之上,因此需要您設定外部服務。本操作說明將逐步說明所有必要步驟,讓您在擴充功能中啟用這項功能。

雖然 chrome.gcm 仍受支援,但這項功能是在 Push 標準推出之前,十多年前建立的。一般來說,建議您一律使用網路標準,而非擴充功能專屬 API。除非您有特定需求需要使用 chrome.gcm,否則建議使用 Push

必要條件

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

Firebase.com 首頁。
Firebase.com 首頁

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

Firebase 控制台的專案清單螢幕截圖。
Firebase 控制台的專案清單

接著前往 Cloud Messaging 的設定頁面

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

如果您已在這項專案中已有雲端通訊帳戶,想要複製所列的數字寄件者 ID。

如果您尚未啟用雲端訊息傳送服務,請為 Google Cloud 中的專案啟用 Firebase Cloud Messaging API。在下圖中,您可以看到 Firebase 設定中直接連至此頁面的連結。

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

啟用後,請返回 Cloud Messaging 的設定頁面,並複製寄件者 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