AWS SNSを利用したPush Notificationについて(React Native / iOS)

ここでは、AWS SNSを利用したPush Notificationについて紹介します。具体的には次の手順で設定することになりますが、一部の設定方法については、割愛します。

  1. Apple Dev WebコンソールでPush Notification用のiOS Credentialを作成する
  2. 作成されたCredentialをMacのキーツールチェーンにインストールする
  3. インストールしたCredentialのパブリックキーを.p12形式でexportする
  4. AWS SNSでtopicを作成する
  5. AWS SNSでアプリケーションを作成する (.p12ファイルをアップロードする)
  6. AWS SNSのアプリケーション内にエンドポイントを作成する (デバイスからtoken idの取得が必要)

まず、Apple Developerコンソールでの設定については、下記を参考にしてください。

また、AWSのコンソール上での設定については、下記のサイトが参考になると思いますので、ここでは割愛します。

ここで、エンドポイントを作成する際、device idが必要になります。その値はデバイス毎に異なり、また、インストール毎にも異なります。そのため、通常は初回アクセス時にアプリから直接取得して、サービス側で記憶しておきます。

ここでは、説明を簡略化するため、device idの取得方法についてだけ紹介し、設定はAWSコンソールにログインして、手動で入力することを想定します。

device idの取得方法

今回はReact Native向けのpush notification用ライブラリであるreact-native-push-notificationを利用します。

次の行をApp.jsに追加することでtokenの値がコンソールに表示され、それがdevice idを示しています。

メッセージフォーマットについて

次にSNSで送信するメッセージのフォーマットについて紹介します。SNSからメッセージを送信する場合、明確にAndroid向けとiOS向けを記述する必要があります。例えば、次のように記述すると、iOS向けのメッセージとなります。

ここで、送信したいメッセージは、message変数に挿入しています。apsはiosがpush notificationでメッセージとして認識する部分を指し、その子供に当たるalertが表示するメッセージの内容となります。

さらに、メッセージ以外の変数を渡したい場合、apsの兄弟オブジェクトとして定義すると、受信メッセージのdataと呼ばれるオブジェクトの子供として取得できます。

次にdata変数で定義している内容が、送信先(TargetArn)、送信メッセージの形式(MessageStructure)、メッセージ内容(Message)を表しています。さらに、メッセージ内容の中では、ターゲットのプラットフォーム(payloadKey)、それぞれのターゲットに対するメッセージを記述するようになっています。APNSのキーは、iOSのプロダクションモードへのメッセージを示し、APNS_SANDBOXのキーはiOSの開発モードへのメッセージを示しています。

参考サイト

スポンサーリンク
スポンサーサイト
スポンサーサイト

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーサイト