AWSのプッシュ通知をアプリで実装するための注意点

エンドポイントを最新に保つ

エンドポイントが無効になると通知が届かなくなってしまいます。作成済みであっても、デバイストークンが変わった時には登録し直さないといけません。逆にインストール直後など、まだ通知が必要か分からない段階では無理に作成しないようにします。

AWSSNSでプッシュ通知の購読と解除をする

購読の開始(subscribe)

トピックARNを指定して購読します。

arn:aws:sns:ap-northeast-1:135341533795:my-topic

購読の解除(unsubscribe)

購読中のサブスクリプションARNを指定して解除します。

arn:aws:sns:ap-northeast-1:135341533795:my-topic:1328f057-de93-4c15-512e-8bb2268db8c4

サブスクリプションARNはトピックARNのお尻にIDが追加されたものです。トピックARNでは解除できません。同じトピックでIDだけが異なる複数のサブスクリプションがあれば同じ通知が2通きてしまう現象もあり得ます。

特に参考になったページ

プッシュ通知はフィルタリングしたり、膨大なユーザーを捌きながら安定させようとすると結構工夫がいるので大変だったりします。皆さんも色々と苦労されてるみたいです。

Amazon SNS のモバイルトークン管理についてのベストプラクティス

技術力の高いIT企業さんのページ
通知に限らず様々な情報を率先して配信してくれるので、多方面で役に立ちます。

https://qiita.com/hayashier/items/a178facf56cbd0a1d9fb

iOS(Swift)とAndroid(Java)の具体的なソースコードを載せてくれています。このページに助けられた人って多いんじゃないでしょうか。@hayashierさんに感謝

大規模ネイティブアプリへのプッシュ通知機能導入にあたって考えたこと

大規模なアプリを運用していく上で苦労したエピソードを交えながら解決策を載せてくれています。