執筆者: John M. Wargo Principal Program Manager
このポストは、2019 年 4 月 24 日に投稿された Azure Notification Hubs and Google’s Firebase Cloud Messaging Migration の翻訳です。
Google が Google Cloud Messaging (GCM) から Firebase Cloud Messaging (FCM) への移行を発表しました。これを受け、Azure Notification Hubs などのプッシュ サービスは Android デバイスへの通知方法を調整する必要が出てきました。
このためマイクロソフトはサービス バックエンドを更新し、適宜 API と SDK の更新を公開しました。また、お客様への影響を最小限に抑えるために、実装では既存の GCM 通知スキーマとの互換性を維持することにし、現在は FCM Legacy Mode で FCM を使用して Android デバイスに通知を行っています。最終的には、新機能やペイロード形式などを含めて、FCM を本格的にサポートしたいと考えています。この変更は長期にわたることを想定しており、現在は既存のアプリや SDK との互換性の維持を重視して移行を行っている段階です。そのため現在アプリでは (SDK との併用で) GCM ライブラリと FCM ライブラリのどちらも使用でき、問題なく通知されるようになっています。
つい先日、一部のお客様に向けて、GCM エンドポイントを通知に使用しているアプリに関する警告メッセージが Google から送信されました。これはあくまで警告であり、障害が起きているということではありません。アプリへの Android 通知は引き続き Google に送られ、Google で処理されます。Google のサービス構成で GCM エンドポイントを明示的に指定していたお客様が、非推奨のエンドポイントをまだ使用していたケースがあったようですが、私たちはこの問題を把握し、Google からメールが送られる問題の解決に取り組んでいました。
そして、その非推奨のエンドポイントを置き換え、修正プログラムを配信しました。
もしアプリで GCM ライブラリを使用している場合は、Google の指示に従ってアプリ内で FCM ライブラリへのアップグレードを行ってください。マイクロソフトの SDK はどちらのライブラリとも互換性があるため、マイクロソフト側のアプリでアップデートを行う必要はありません (SDK を最新の状態にしている場合に限ります)。
とは言え、この状況は一時的な処置ですので、1 年以内には API と SDK を更新し、FCM を完全にサポートしたいと考えています (GCM はサポート終了となる見込み)。以下は本件に関してよく寄せられる質問とその回答です。こちらを参照しながら対応を進めてください。
Q: 互換性を維持するために、期限までにやるべきことはありますか。Google が現在発表している期限は 5 月 29 日ですが、変更の可能性はありますか。
A: 特にありません。マイクロソフトが既存の GCM 通知スキーマとの互換性を維持させるため、GCM キーは引き続き皆様のアプリで使用されている GCM の SDK とライブラリと同様に問題なく機能します。
FCM の SDK とライブラリにアップグレードし新機能を利用する場合でも、GCM キーはそのまま機能します。FCM キーの使用に切り替えることも可能ですが、新しい Firebase プロジェクトを作成する際に必ず既存の GCM プロジェクトに Firebase を追加してください。そうすることで、GCM の SDK とライブラリを使用している古いバージョンのアプリを顧客が使用している場合に、そのアプリとの下位互換性が保証されます。
新しい FCM プロジェクトの作成時に既存の GCM プロジェクトに関連付けていない場合は、新しい FCM シークレットで Notification Hubs をアップデートすると、新しい FCM キーには古い GCM プロジェクトへのリンクがないため、現行のアプリに通知をプッシュできなくなります。
Q: 古い GCM エンドポイントが使用されているとメールで通知がありましたが、なぜですか。何か対応する必要はあるのでしょうか。
A: 何もしなくて大丈夫です。マイクロソフトは今新しいエンドポイントへの移行を進めており、間もなく完了するため、変更の必要はありません。問題が起きているわけではなく、マイクロソフト側で GCM エンドポイントを使用しなくなったことが Google から警告メッセージが送信された理由です。
Q: ユーザーへのサービスを中断せずに、新しい FCM の SDK とライブラリに移行するにはどうすればよいでしょうか。
A: いつアップグレードしても大丈夫です。Google はまだ GCM の SDK とライブラリの廃止について発表していません。ユーザーへのプッシュ通知を中断しないためには、新しい Firebase プロジェクトの作成時に必ず既存の GCM プロジェクトに関連付けるようにしてください。そうすることで、GCM の SDK とライブラリで実行されている古いバージョンのアプリを使用しているユーザーと、FCM の SDK とライブラリで実行されるアプリの新規ユーザーに対して新しい Firebase シークレットが機能します。
Q: FCM の新機能やスキーマを通知に使用できるようになるのはいつですか。
A: マイクロソフトの API と SDK のアップデートが公開されるまでしばらくお待ちください。今後数か月のうちにお知らせできる見込みです。
Azure Notification Hubs のさらに詳しい情報についてはこちらをご覧ください。またこちらのページから利用を開始していただけます。