Memo

メモ > 技術 > サービス: AmazonSNS > 概要・前提・注意点など

概要・前提・注意点など
■概要 AndroidとiOSにプッシュ通知を送信するためのメモ。 AndroidとiOSではプッシュ通知のためのプログラムは変わるものの、基本的な流れは同じ。 端末の「デバイストークン」とアプリの「バンドルID」をもとに、送信対象の「端末」と端末にインストールされている「アプリ」を特定する。 プッシュ通知の配信は、Androidでは「FCM(Firebase Cloud Messaging)」を、iOSでは「APNs(Apple Push Notification Service)」を使用し、 GoogleやAppleが提供しているAPIをプログラムから叩くことで実現する。 大量のプッシュ通知を安定して配信するのは難しい部分が多い。 よって配信は、最終的にAmazonSNSに任せるといい。 今回は、 1. Android単体でプッシュ通知を実装する。 2. iOS単体でプッシュ通知を実装する。 3. AmazonSNSから、AndroidとiOSの両方にプッシュ通知を送信する。 という流れで実装する。 ■主な参考ページ AWS SNSからAndroidにプッシュ通知するためにやったこと、ハマったこと - Qiita https://qiita.com/nashitake/items/4724527c5c6fef4427d2 Android から Amazon SNS を使ってみる - Qiita https://qiita.com/kusokamayarou/items/27e023ad06cade20c731 AndroidのPush通知の導入方法 - Qiita https://qiita.com/YusukeYamazaki/items/9394234089b776bcb320 [2019年度版]AWS SNSでiOSのプッシュ通知 設定手順まとめ | カフーブログ https://kahoo.blog/howto-aws-sns-ios-push-notification/ AWS SDK for PHP を用いた Amazon SNS の操作 - Qiita https://qiita.com/gomi_ningen/items/1002d256285c6d72c6ac Amazon SNSでプッシュ通知を送るための基礎知識 | UNITRUST https://www.unitrust.co.jp/6182 以下は後発の記事なので、そのうち参考にしたい。 AmazonSNSを使ったpush通知の実装について #AWS - Qiita https://qiita.com/Dai_Kentaro/items/5b17272207c66adcdbe4 ■アプリのID ※iOSアプリではAppIDに、net.refirio.* のようなワイルドカードを利用することができ、複数のバンドルIDを作成する必要がなくなる。 ただしこの場合、バンドルIDをもとにアプリを特定する必要がある機能を利用できない。 プッシュ通知やアプリ内課金がこれにあたるので、今回はワイルドカードのまま使わない。 いったんアプリを公開すると変更できないので、慎重に決定したい。 「iOSとAndroidの両方で作る」「本番用と検収用と開発用がある」「Pushも使用する」などを考慮する。 現状の結論として、以下のようにするのが良さそう。 ・iOSもAndroidも net.refirio.pushtest1 のようなIDにする。 ・例えば開発版書き出し時には .dev を付ける。 つまり、具体的には以下のようなIDになる。 net.refirio.pushtest1 … 本番 net.refirio.pushtest1.stg … 検収 net.refirio.pushtest1.dev … 開発(ローカル環境など) iOSとAndroidでIDを統一できるように、「pushtest1」部分にハイフンやアンダーバーは無い方が無難か。 (と思ったが、使える文字も異なるので無理にIDを統一する必要は無いかもしれない。 ただしURLや各種サービスのIDは、普段からできるだけ統一しておきたいので悩ましいところ。) 詳細はこのテキストの「考察: 本番公開用に作成する」も参考に。 ■iOSのp8証明書 iOSではプッシュ通知の送信に証明書が必要になる。 p8証明書を使えば、証明書の定期的な更新が不要になる。 詳細は後述の「iOS: p8証明書」を参照。

Advertisement