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