コンテンツへスキップ →

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

amazonSNSでを使うと、サーバーからAppleへプッシュ通知を送る部分をまるっとおまかせできます。自分で実装しようとすると結構面倒。PHPだとApnsPHPというライブラリが有名ですが、これを使って自前で数千件、数万件のプッシュ通知を送る仕組みをつくるのはそう簡単ではありません。

そこで今回はamazonSNSがどういうものなのか、またどのように使うのかを説明します。

amazon SNS(Amazon Simple Notification Service)とは

・プッシュ通知の実装部分を請け負ってくれるため、かんたんにプッシュ通知を実装できる
・複数ユーザーに送るトピック(グループ機能)と、個別に送る方法がある
・毎月100万件まで無料枠があり、その後は利用料に応じて課金(100 万件あたり 0.5 ドル)

amazonSNSになげるだけで、APNSに送られ、iOSにプッシュ通知を配信してくれます。sns-mobile-direct

プッシュ通知を送るためには端末のデバイストークンが必要です。amazonSNSではデバイストークンからモバイルエンドポイントを作成。ここに送信するとプッシュ通知がおこなわれます。さらに複数のモバイルエンドポイントをグループ化したものがトピックです。

トピックでグループ化しておけば、トピックに送信するだけでグループ内のモバイルエンドポイントすべてに配信されます。楽チンですね。

必要な事前設定

amazonAWSアカウントの開設

amazon SNSはAWSサービスの一部です。

Appleにプッシュ通知を送る際の証明書を準備

Certificates, Identifiers & Profilesにて証明書をつくっておく(開発用と本番用)

AppIDや証明書のつくりかたはこちらを参照。
iOSアプリへのpush通知を実装する方法
 
このとき、キーチェーンアクセスで「認証局に証明書を要求…」の際の通称は英字で(日本語だとamazon snsで登録時にエラーが出る)作成した証明書をp12ファイルとしてかきだして使ってください。(ファイル名は英語で書き出す)

amazon snsでの設定

amazon snsを開いたら、まずはプラットフォームアプリケーションの作成。
スクリーンショット 2018-01-13 7.29.53

・プッシュ通知プラットフォームは「AppleProduction」と開発用の「AppleDevelopment」があるので両方つくっておく
・p12ファイルを書き出して「認証情報をファイルから読込」して保存する

そうすると、このように本番用と開発用のARNが作成されます。これを使ってあとでPHPで処理部分を実装します。アプリケーションのkeyのようなものですね。
スクリーンショット 2018-01-13 7.31.15

サンプルアプリで試す

まずは実機にamazonSNSのコンパネから直接メッセージが送れるか試してみます。

サンプルアプリの方はApple Push Notification Service の使用開始にある、snsmobilepush.zipをおとしてbundle identifierを変更して使います。

と、ここでXcode8からは、ちょっと設定を変えないとdeviceTokenが取得できません。
参考)Xcode8(Beta2)とiOS10ではremote push通知用のdeviceTokenが取得できず失敗する時のチェック

スクリーンショット 2018-01-24 9.50.27CapabilitiesタブのPush NotificationsをONにします。

そしてサンプルアプリを起動して、プッシュ通知を許可すると成功すればコンソールログにデバイストークンが出力されます。
devicetoken

では、コンパネからメッセージを送ってみましょう。
エンドポイントの追加デバイストークンをもとにエンドポイントを作成します。

次にエンドポイントを選択して、メッセージを送ります。
エンドポイントへの発行

メッセージ送信

無事、プッシュ通知が届いたので成功です。
プッシュ通知成功

事前の設定は多いですが、ここまでスムーズに進められました。次はサーバーサイド(PHP)で実装してプッシュ通知を送る方法を試してみます。

amazon SNSでスマホアプリにプッシュ通知をする方法(PHP編)

SHARE

スキルアップにMENTA

MENTAはいろんなプロに相談できるNo1メンターサービスです。

僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。

YouTubeでも発信中!

PROFILE

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

カテゴリー: スマホアプリ開発