chrome.gcm を使用すると、エンドユーザーとメッセージを送受信できます。Firebase Cloud Messaging(FCM)を基盤として構築されているため、設定が必要な外部サービスに依存します。ここでは、拡張機能で動作させるために必要なすべての手順を説明します。
chrome.gcm
は引き続きサポートされますが、Push 標準よりも 10 年以上前に作成されました。一般に、拡張機能固有の API ではなく、ウェブ標準を使用することをおすすめします。chrome.gcm
を使用する必要がない限り、push を使用することをおすすめします。
前提条件
chrome.gcm
を使用するには、Firebase アカウントを設定する必要があります。
アカウントを作成したら、Firebase コンソールを開き、使用する既存のプロジェクトを選択するか、拡張機能用に新しいプロジェクトを作成します。
Cloud Messaging の設定ページに移動します。
このプロジェクトに既存のクラウド メッセージ アカウントがある場合は、リストに表示されている数値の送信者 ID をコピーします。
Cloud Messaging が有効になっていない場合は、Google Cloud 内のプロジェクトで Firebase Cloud Messaging API を有効にする必要があります。次の図では、Firebase 設定のこのページへの直接リンクがある場所を示しています。
有効にしたら、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 を使用できます。