Amazon SNSを使ってiOSアプリにプッシュ通知を送信する方法

AWS, iOS, SNS

今まで何度かプッシュ通知の確認に使っていたのですが、
その都度調べて対応していたので今回は忘れないように記事を書いてみました。

前提条件

  • AWSのアカウントを持っていること
  • プッシュ通知用のP12ファイルを準備していること
  • iOSアプリからデバイストークンを取得していること

手順

1. プラットフォームの設定を作成する

「SimpleNotificationService」ー>「Applications」の画面に遷移する。
この画面で「Create platform application」ボタンを押すと以下の画面が表示されます。

今回はiOSアプリに向けてプッシュ通知を送りたいので「Push notification platform」は「Apple development」を選びます。
プラットフォームを選択すると以下のように必要な設定項目が表示されます。

Application name:任意の名前を入力でOKです。
Applicationsで以下のように表示されます。

Push notification platform:送信したいプラットフォームを選択します。
Push certificate type:送信したいプッシュ通知の種類を選択します。
Choose P12 file:P12ファイルをアップロードします。
上記の設定を行った後「Create platform application」を押して設定を作成します。

2. デバイストークンを登録する

「Applications」画面の一覧に手順1で作成した設定の「ARN」のリンクを押すと以下の画面が表示されます。

上記の画面で「Create platform endpoint」ボタンを押すと以下の画面が表示されます。

「Deveice token」:iOSアプリから入手したデバイストークンを入力します。
「User data」:プッシュ通知を送信するユーザー情報や端末情報を入力します。
入力後「Add endpoint」を押せば「Endpoints」に登録されます。

3. プッシュ通知を送信する。

「Endpoints」の画面で送信したいデバイストークンにチェックを入れて「Publish to endpoint」ボタンを押すと以下のような画面が表示されるので任意の「Message format」を選択します。(今回はJSONを選択)

「JSON message generator」ボタンを押すと以下の画面が表示されます。

「Message」欄に任意のメッセージを入力後「Generate JSON」ボタンを押すとJSONが生成されるで「Publish message」ボタンを押せばプッシュ通知が送信されます。

ハマりどころ

今回の作業をするにあたって比較的ハマりやすいポイントをまとめてみました。

  • 証明書の種類について
    アプリ開発に使っている証明書を使ってP12ファイルを作っている場合はエラーになるので、
    プッシュ通知用の証明書から作成したP12ファイルを使う必要があります。

  • P12のファイル名について
    日本語を利用するとエラーになるので、
    P12ファイルを生成時に英字のファイル名にする必要があります。

  • DevelopmentとProductionの証明書について
    P12ファイルを作る時にDevelopmentとProductionの証明書を間違えているとエラーになるので、
    「Push notification platform」で選択したものに合う証明書を使う必要があります。

感想

一度環境を作ってしまえばあとの作業が楽ですね!

AWS, iOS, SNS