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の機能を使うときに必要になります。取得方法は次のとおりです:
- Firebaseコンソール(https://console.firebase.google.com/)にログインします。
- 既存のプロジェクトを選ぶか、新しいプロジェクトを作ります。
- 左上の歯車アイコンをクリックし、「プロジェクトの設定」を選びます。
- 「全般」タブで「ウェブ API キー」という項目があるので、その値をコピーして使います。
5. 「ウェブ API キーがありません」というエラーの解決方法
もし「このプロジェクトにはウェブ API キーがありません」というエラーが出た場合、次の手順で解決できます:
5.1. Webアプリを追加する
- Firebaseコンソールにログインして、問題のあるプロジェクトを選びます。
- 左上の歯車アイコンをクリックして「プロジェクトの設定」を開きます。
- 「全般」タブで「アプリを追加」ボタンをクリックし、ウェブアプリのアイコンを選びます。
- アプリ名を入力して「登録」をクリックします。これにより、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ページでプッシュ通知を使いたい場合は、サードパーティのサービスを検討しましょう。