Google Cloud MessagingでPUSH通知機能

「ルアーでぬしを釣れ!!」ver1.3にて、Google Cloud Messaging(以下GCM)を使った爆釣通知(「爆釣警報!!雨が降って来たぞー!!」的なメッセージをPUSH通知する)を実装しました。

GCMを使うと、好きな文言でPUSH通知ができるし、常駐しないのでスマホのバッテリーの節約にもなるそうです。面白そう!!

と言うわけで、一見めちゃくちゃ簡単に実用化できそうだったのですが、Android sdkに入っているGCMのサンプルは本当に最低限の「動かしてみよう!」というレベルのもので、実際に運用するには自サーバー側に以下の機能の実装が必要です。

  • registration IDを自サーバーDBに登録する。(今回は確認用に、imeiのカラムも作成した。)
  • 一度に1000デバイスまでにしか通知できないため、登録デバイスが1000を超えている場合、複数回に分けてapi発行する。
  • 端末からアプリがアンインストールされた場合、GCMサーバーが送ってくるjsonを解析して、自サーバーDBから該当registration IDを削除する必要がある(さもないとレコードがどんどん溜まってしまう)。

ちなみにGoogle公式ドキュメントでは、canonical_idsがあった場合に必要な処理の記述(GCMサーバーに重複登録した場合、自サーバーの該当registration IDをregistration_idで置き換える?)がありますが、ちょっと必要性が良くわかりませんでした。死んでるregistration IDを自サーバーから削除していれば問題無いような?

これに関しては、どこかが間違っているかもしれないので、とりあえず自サーバーでログを取ってみて、様子を見てみます。

7/22 追記 canonical_idsでちゃいました。ちゃんとregistration_idで置き換える必要があるみたいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください