Firebase Cloud Messagingの
変更点と設定方法

関連記事

1. はじめに

Firebase Cloud Messaging(FCM)というサービスは、スマートフォンやパソコンにプッシュ通知を送るための仕組みです。2024年6月20日から古い方式(レガシーAPI)が使えなくなり、新しい「HTTP v1 API」という方式に完全に切り替わります。この変更点と設定方法について、わかりやすく説明します。

2. 新旧APIの主な違い

2.1. 認証方法の変更

古い方式では、「APIキー」という簡単な鍵を使って認証していました。新しい方式では、「サービスアカウントJSONファイル」という、より詳しい情報が書かれたファイルを使います。このファイルをもとに「アクセストークン」という一時的な通行証を取得して、FCMのサービスにアクセスします。

2.2. メッセージ送信の形式が変わります

古い方式では、シンプルな形でメッセージを送っていましたが、新しい方式ではもっと詳しい情報を含む複雑な形式でメッセージを送る必要があります。例えば、通知を送りたい端末の情報や、通知の内容をより細かく指定する必要があります。

2.3. セキュリティの向上

新しい方式は、より安全で大規模なサービスにも対応できるように設計されています。これにより、ユーザーの情報がより守られ、多くのユーザーにも安定して通知を送れるようになります。

3. 新しい方式への移行手順

3.1. サービスアカウントJSONファイルの入手

まず、Firebaseというサービスの管理画面(コンソール)にログインします。次に、「プロジェクト設定」を開き、「サービスアカウント」というタブを選びます。そこで「新しい秘密鍵を生成」というボタンをクリックすると、JSONファイルがダウンロードされます。このファイルには重要な情報が含まれているので、安全に保管してください。

3.2. アクセストークンの取得方法

ダウンロードしたJSONファイルを使って、Googleの認証サービスからアクセストークンを取得します。これには、プログラミングコードを書く必要があります。例えば、Node.jsというプログラミング言語を使う場合は以下のようなコードになります:

const {google} = require('googleapis');
const key = require('./service-account.json');

const jwtClient = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key,
  ['https://www.googleapis.com/auth/firebase.messaging']
);

jwtClient.authorize((err, tokens) => {
  if (err) {
    console.error('Error generating token:', err);
    return;
  }
  console.log('Access Token:', tokens.access_token);
});
Code language: JavaScript (javascript)

このコードを実行すると、アクセストークンが表示されます。

3.3. 新しい方式でメッセージを送る

取得したアクセストークンを使って、新しいAPIエンドポイント(サーバーのアドレス)にリクエストを送ります。例えば、curlというコマンドを使う場合は以下のようになります:

curl -X POST -H "Authorization: Bearer アクセストークン" \
-H "Content-Type: application/json" \
https://fcm.googleapis.com/v1/projects/プロジェクトID/messages:send \
-d '{
  "message": {
    "notification": {
      "title": "通知タイトル",
      "body": "通知内容"
    },
    "token": "デバイストークン"
  }
}'
Code language: PHP (php)

ここで、「アクセストークン」、「プロジェクトID」、「デバイストークン」の部分は、実際の値に置き換える必要があります。

4. Web APIキーの取得方法

Firebase Web APIキーは、ウェブアプリからFirebaseの機能を使うときに必要になります。取得方法は次のとおりです:

  1. Firebaseコンソール(https://console.firebase.google.com/)にログインします。
  2. 既存のプロジェクトを選ぶか、新しいプロジェクトを作ります。
  3. 左上の歯車アイコンをクリックし、「プロジェクトの設定」を選びます。
  4. 「全般」タブで「ウェブ API キー」という項目があるので、その値をコピーして使います。

5. 「ウェブ API キーがありません」というエラーの解決方法

もし「このプロジェクトにはウェブ API キーがありません」というエラーが出た場合、次の手順で解決できます:

5.1. Webアプリを追加する

  1. Firebaseコンソールにログインして、問題のあるプロジェクトを選びます。
  2. 左上の歯車アイコンをクリックして「プロジェクトの設定」を開きます。
  3. 「全般」タブで「アプリを追加」ボタンをクリックし、ウェブアプリのアイコンを選びます。
  4. アプリ名を入力して「登録」をクリックします。これにより、Web APIキーが自動的に生成されます。

5.2. 認証サービスを有効にする

場合によっては、認証サービスを設定していないとAPIキーが生成されないことがあります。左側のメニューから「構築 > Authentication」をクリックし、「始める」をクリックして、ログイン方法(例:メールアドレス/パスワード)を有効にしてみてください。

6. Firebaseプロジェクトに関する情報

Firebaseでは、無料プラン(Sparkプラン)でプロジェクトを作成できます。通常、1つのアカウントで5〜10個のプロジェクトを作れますが、アカウントの状態によって変わることがあります。

各プロジェクトには、複数のアプリ(iOS、Android、ウェブ)を含めることができ、Firebase Cloud Messaging(FCM)をサポートしています。

7. まとめ

Firebase Cloud Messagingは2024年6月20日から新しい方式に完全移行します。古い方式を使っている場合は、早めに新しい方式に切り替えましょう。また、Web APIキーの取得方法やエラーへの対処法も覚えておくと便利です。Firebase は無料でも使えますが、プロジェクト数などに制限があります。AMPページでプッシュ通知を使いたい場合は、サードパーティのサービスを検討しましょう。