amazon SNSでiOSアプリにプッシュ通知を送る!画像つきで詳しく使い方もまとめました!

amazonSNSでを使うと、サーバーからAppleへプッシュ通知を送る部分をまるっとおまかせできます。自分で実装しようとすると結構面倒。PHPだとApnsPHPというライブラリが有名ですが、これを使って自前で数千件、数万件のプッシュ通知を送る仕組みをつくるのはそう簡単ではありません。
そこで今回はamazonSNSがどういうものなのか、またどのように使うのかを説明します。
目次
amazon SNS(Amazon Simple Notification Service)とは
・プッシュ通知の実装部分を請け負ってくれるため、かんたんにプッシュ通知を実装できる
・複数ユーザーに送るトピック(グループ機能)と、個別に送る方法がある
・毎月100万件まで無料枠があり、その後は利用料に応じて課金(100 万件あたり 0.5 ドル)
amazonSNSになげるだけで、APNSに送られ、iOSにプッシュ通知を配信してくれます。
プッシュ通知を送るためには端末のデバイストークンが必要です。amazonSNSではデバイストークンからモバイルエンドポイントを作成。ここに送信するとプッシュ通知がおこなわれます。さらに複数のモバイルエンドポイントをグループ化したものがトピックです。
トピックでグループ化しておけば、トピックに送信するだけでグループ内のモバイルエンドポイントすべてに配信されます。楽チンですね。
必要な事前設定
amazonAWSアカウントの開設
amazon SNSはAWSサービスの一部です。
Appleにプッシュ通知を送る際の証明書を準備
Certificates, Identifiers & Profilesにて証明書をつくっておく(開発用と本番用)
AppIDや証明書のつくりかたはこちらを参照。
iOSアプリへのpush通知を実装する方法
このとき、キーチェーンアクセスで「認証局に証明書を要求…」の際の通称は英字で(日本語だとamazon snsで登録時にエラーが出る)作成した証明書をp12ファイルとしてかきだして使ってください。(ファイル名は英語で書き出す)
amazon snsでの設定
amazon snsを開いたら、まずはプラットフォームアプリケーションの作成。
・プッシュ通知プラットフォームは「AppleProduction」と開発用の「AppleDevelopment」があるので両方つくっておく
・p12ファイルを書き出して「認証情報をファイルから読込」して保存する
そうすると、このように本番用と開発用のARNが作成されます。これを使ってあとでPHPで処理部分を実装します。アプリケーションのkeyのようなものですね。
サンプルアプリで試す
まずは実機にamazonSNSのコンパネから直接メッセージが送れるか試してみます。
サンプルアプリの方はApple Push Notification Service の使用開始にある、snsmobilepush.zipをおとしてbundle identifierを変更して使います。
と、ここでXcode8からは、ちょっと設定を変えないとdeviceTokenが取得できません。
参考)Xcode8(Beta2)とiOS10ではremote push通知用のdeviceTokenが取得できず失敗する時のチェック
CapabilitiesタブのPush NotificationsをONにします。
そしてサンプルアプリを起動して、プッシュ通知を許可すると成功すればコンソールログにデバイストークンが出力されます。
では、コンパネからメッセージを送ってみましょう。
デバイストークンをもとにエンドポイントを作成します。
事前の設定は多いですが、ここまでスムーズに進められました。次はサーバーサイド(PHP)で実装してプッシュ通知を送る方法を試してみます。
SHARE
スキルアップにMENTA
MENTAはいろんなプロに相談できるNo1メンターサービスです。
YouTubeでも発信中!
PROFILE

あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)