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 から Sender ID を取得したので、メッセージをリッスンするように拡張機能を構成できます。まず、拡張機能の manifest.json
に gcm
権限が追加されていることを確認します。
{
"manifest_version": 3,
...
"permissions": ["gcm"]
これで、chrome.gcm
API にアクセスできるようになりました。プッシュ メッセージをリッスンするように登録するには、chrome.gcm.register
を呼び出します。
メッセージをリッスンする
拡張機能で送信者 ID を登録したら、受信メッセージを処理するコードを追加する必要があります。
Firebase のない Firebase
chrome.gcm
は常に Firebase を経由しますが、Firebase を外部プッシュ メッセージ ベンダーのプロキシとして動作するように構成できます。通常、ベンダーは Chrome 拡張機能のサポートを明示的に記載しますが、Firebase の従来のプッシュ通知をサポートしているベンダーであれば、問題なく動作するはずです。プロバイダが Firebase の従来のプッシュ通知をサポートしている場合は、試してみてください。問題が発生した場合は、プロバイダ サポートに問い合わせて、適用される制限について確認してください。
チャンネルとトピック
chrome.gcm
は、以前の Firebase Messaging API を使用しています。これは、以前の API がメッセージ チャネルをサポートしていないため重要です。プッシュされたすべてのメッセージはすべてのクライアントに送信されます。ユーザーの拡張機能がメッセージのサブセットにのみ関心がある場合は、自身をフィルタする必要があります。
Firebase は無料アカウントとして開始されますが、一定の使用量を超えると課金が発生します。特定のグループにメッセージを送信することを計画している場合、クライアント側のフィルタリングは、結果的に妥当な以上に費用がかかる可能性があります。この問題を回避するには、複数のプロジェクトを作成して個々のチャンネルを複製します(チャンネルごとに 1 つのプロジェクトと 1 つの送信者 ID)。1 つの拡張機能で登録できる送信者 ID は最大 100 個です。
チャンネルのサポートが必要な場合や、Firebase を使用せずにプッシュ通知を使用する場合は、Push API を使用できます。