重要なお知らせ:2024年6月20日、Firebase Cloud Messaging(FCM)レガシーAPIは廃止されます
2024年6月20日、GoogleはFirebase Cloud Messaging(FCM)のレガシーAPIを廃止します。FCMは、AndroidやiOSアプリにプッシュ通知を送信するための重要なサービスです。この廃止により、レガシーAPIを利用したプッシュ通知の送信ができなくなります。
影響を受けるもの:
- レガシーAPIキーを使用したプッシュ通知の送信
- FCM レガシー HTTP プロトコル
移行方法:
2024年6月20日までに、以下の方法でFCM v1 APIへ移行する必要があります。
サービスアカウントキーを使用する
従来のAPIキーではなく、サービスアカウントキーを使用して認証を行うように変更する必要があります。サービスアカウントキーは、Google Cloud Platformコンソールから作成できます。
FCM v1 HTTP プロトコルを使用する
レガシーHTTPプロトコルではなく、FCM v1 HTTPプロトコルを使用する必要があります。FCM v1 HTTPプロトコルは、レガシーHTTPプロトコルよりも機能が強化されており、より安全です。
移行ガイダンス:
Googleは、FCM レガシーAPIから v1 APIへの移行を支援するために、以下のガイダンスを提供しています。
追加情報:
- 2024年7月以降も、FCM レガシーAPIの一部機能は引き続き利用可能ですが、これらの機能は将来的に廃止される可能性があります。
- Java 開発環境
- Android Studio
- Firebase プロジェクト
- FCM v1 API を有効にした Firebase プロジェクト
手順:
-
プロジェクトに Firebase ライブラリを追加する
プロジェクトの
build.gradle
ファイルに次の依存関係を追加します。dependencies { implementation 'com.google.firebase:firebase-messaging:21.1.0' }
-
FirebaseMessagingService クラスを作成する
プッシュ通知を受信するためのサービスを作成します。このサービスは、
onMessageReceived
メソッドをオーバーライドする必要があります。このメソッドは、受信したメッセージを処理するために使用されます。public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { // メッセージの処理 Log.d("FCM", "Message received: " + remoteMessage.getData()); } }
-
FirebaseMessaging インスタンスを取得する
アプリケーションコード内で、
FirebaseMessaging
インスタンスを取得します。FirebaseMessaging messaging = FirebaseMessaging.getInstance();
-
デバイスの登録トークンを取得する
デバイスの登録トークンを取得します。このトークンは、プッシュ通知を送信するために使用されます。
String token = messaging.getToken(); Log.d("FCM", "Token: " + token);
-
プッシュ通知を送信する
FirebaseMessaging
インスタンスを使用して、プッシュ通知を送信します。String to = "YOUR_DEVICE_TOKEN"; // デバイスの登録トークン Map<String, String> data = new HashMap<>(); data.put("message", "This is a push notification"); FirebaseMessaging.getInstance().send(new RemoteMessage.Builder(to) .setData(data) .build());
注意事項:
- このコードはあくまで例であり、本番環境で使用するには変更が必要な場合があります。
FCM レガシーAPI に代わる方法
FCM v1 API
FCM v1 API は、FCM レガシーAPI の後継となるAPIです。FCM v1 API は、レガシーAPIよりも機能が強化されており、より安全です。また、FCM レガシーAPI で使用されていたすべての機能をサポートしています。
FCM レガシーAPI から v1 API への移行は、比較的容易です。以下の手順に従ってください。
代替プッシュ通知サービス
FCM 以外にも、プッシュ通知を提供するサービスはいくつかあります。これらのサービスには、Amazon SNS、Urban Airship、OneSignal などがあります。
各サービスの比較:
サービス | 機能 | 価格 | 長所 | 短所 |
---|---|---|---|---|
FCM v1 API | 高機能、無料 | 無料 | 信頼性が高い、多くの開発者に利用されている | Google Cloud Platform の一部であるため、他社製サービスとの連携が難しい場合がある |
Amazon SNS | 高機能、従量課金制 | 無料利用枠あり | スケーラビリティが高い、AWS の他のサービスと連携しやすい | FCM ほど多くの開発者に利用されていない |
Urban Airship | 高機能、従量課金制 | 無料利用枠あり | ユーザーエンゲージメント機能が充実している | 他のサービスよりも高価 |
OneSignal | 基本機能は無料、従量課金制 | 無料利用枠あり | セットアップが簡単、使いやすい | 高度な機能は有料 |
適切なサービスを選択する:
適切なプッシュ通知サービスは、アプリケーションのニーズによって異なります。サービスを選択する際には、機能、価格、使いやすさなどを考慮する必要があります。
カスタムプッシュ通知ソリューション
独自のプッシュ通知ソリューションを構築することもできます。これは、高度な制御が必要な場合や、既存のインフラストラクチャと統合する必要がある場合に適しています。
カスタムソリューションの構築:
カスタムプッシュ通知ソリューションを構築するには、以下の要素を検討する必要があります。
- メッセージ配信プロトコル
- デバイス登録
- 通知配信
- 分析
- 高度な制御が可能
- 既存のインフラストラクチャと統合できる
- 開発と保守にコストがかかる
- 複雑になる可能性がある
java android firebase