Edited at

FCM移行概要まとめ(とサーバ側対応)

More than 1 year has passed since last update.

全体把握のため調査した時のまとめ


前提

GCMのサーバおよびクライアントAPIを2019年4月11日付けで廃止するので、それまでに後継サービスのFCMに移行すること

http://www.atmarkit.co.jp/ait/articles/1804/13/news051.html

https://developers.google.com/cloud-messaging/gcm


アップグレードに必要なこと(移行の流れ)


  1. Firebase管理コンソール上からGCMプロジェクトをインポート(アプリ側)

  2. FCM対応済みアプリをリリース(アプリ側)

  3. サーバ側のエンドポイントをGCMからFCMに変更(サーバ側)


1. Firebase管理コンソール上からGCMプロジェクトをインポート(アプリ側)


  • この手続きを行うと、アプリ側でFCM受信ができるようになる

  • GCMも受信は可能(ゆえにインポートのタイミングと完全同時にサーバー側の設定も変えなければいけないわけではない)

  • ただ、仮にインポート直後にGCMが受信できなくなったとしてもその作業を戻すことはできないできる


2. FCM対応済みアプリをリリース(アプリ側)


  • 各々のアプリのプッシュの影響箇所を対応・リリース


3. サーバ側のエンドポイントをGCMからFCMに変更(サーバ側)


  • 1.2.の対応後、特に問題なければサーバー側をリリース

  • 1.で発行されたAPIキーを設定

  • FCM受信の確認


おまけ

以下は、自分はサーバー側の対応を行う感じだったのでその部分だけ具体的な内容を記載

pushサーバはphpのframeworkでライブラリはcomposerで管理

結論としてはエンドポイントが定義されていたのはライブラリ内のファイルで、FCM対応バージョンに上げて差し替える感じだった。


サーバー側で対応した作業

php-gcmのライブラリをcomposerで更新すれば良い(その中で定義しているエンドポイントがFCMに向いている)

(名前はphp-gcmのまま)

具体的には以下のGCMのURLがFCMのURLに変わる

GCM endpoint
FCM endpoint

gcm-http.googleapis.com/gcm/
fcm.googleapis.com/fcm/

gcm-xmpp.googleapis.com
fcm-xmpp.googleapis.com

https://github.com/lkorth/php-gcm/commit/732d13ce427a8fc2feb4eac858c7e677d94e4033#diff-3384245c6f082c9d9369e4f183d2b8f1

https://developers.google.com/cloud-messaging/android/android-migrate-fcm


気になった点

ライブラリのFCM対応のバージョンはdev-masterのみだった。