chrome.gcm で Firebase Cloud Messaging(FCM)を使用する

chrome.gcm を使用すると、エンドユーザーとメッセージを送受信できます。Firebase Cloud Messaging(FCM)を基盤として構築されているため、設定が必要な外部サービスに依存します。ここでは、拡張機能で動作させるために必要なすべての手順を説明します。

chrome.gcm は引き続きサポートされますが、Push 標準よりも 10 年以上前に作成されました。一般に、拡張機能固有の API ではなく、ウェブ標準を使用することをおすすめします。chrome.gcm を使用する必要がない限り、push を使用することをおすすめします。

前提条件

chrome.gcm を使用するには、Firebase アカウントを設定する必要があります。

Firebase.com のホームページ。
Firebase.com のホームページ

アカウントを作成したら、Firebase コンソールを開き、使用する既存のプロジェクトを選択するか、拡張機能用に新しいプロジェクトを作成します。

Firebase コンソールのプロジェクト リストのスクリーンショット。
Firebase コンソールでのプロジェクトのリスト表示

Cloud Messaging の設定ページに移動します。

Firebase Cloud Messaging の設定ページのスクリーンショット。
Firebase Cloud Messaging の設定ページ

このプロジェクトに既存のクラウド メッセージ アカウントがある場合は、リストに表示されている数値の送信者 ID をコピーします。

Cloud Messaging が有効になっていない場合は、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 にアクセスできるようになりました。push メッセージをリッスンするように登録するには、chrome.gcm.register を呼び出します。

メッセージをリッスンする

拡張機能によって送信者 ID が登録されたら、受信メッセージを処理するコードを追加する必要があります。

Firebase を使用しない Firebase

chrome.gcm は常に Firebase を経由しますが、Firebase は外部の push メッセージング ベンダーのプロキシとして機能するように構成できます。通常、ベンダーは Chrome 拡張機能のサポートを明示的にリストしますが、Firebase の以前のプッシュ通知をサポートするベンダーであれば、すべて機能するはずです。プロバイダが Firebase の従来のプッシュ通知のサポートをリストしている場合は、ぜひお試しください。問題が発生した場合は、プロバイダのサポートに連絡して、どのような制限が適用されるかを明確にする必要があります。

チャンネルとトピック

chrome.gcm は以前の Firebase Messaging API を使用しています。レガシー API はメッセージ チャネルをサポートしていないため、これは重要です。push されたすべてのメッセージがすべてのクライアントに送信されます。ユーザーの拡張機能が一部のメッセージにのみ関心がある場合は、自分でフィルタする必要があります。

Firebase は無料のアカウントとしてスタートしますが、一定の使用量しきい値を超えると請求が発生します。特定のグループにメッセージを送信する場合、クライアント側のフィルタリングでは、保証額を超える費用が発生する可能性があります。この問題を回避するには、複数のプロジェクトを作成して個々のチャネルを複製します(チャネルごとに 1 つのプロジェクトと 1 つの送信者 ID)。どの拡張機能も、複数の送信者 ID(最大 100 個)を登録できます。

または、チャネルのサポートが必要な場合、または Firebase を経由せずにプッシュ通知を使用する場合は、Push API を使用できます。