1. HOME
  2. ブログ
  3. IT技術
  4. 【後編】GrailsでAWSのSNSを操作してみた!~プッシュ通知編~
【後編】GrailsでAWSのSNSを操作してみた!~プッシュ通知編~

【後編】GrailsでAWSのSNSを操作してみた!~プッシュ通知編~

プッシュ通知編~Grailsを使ってAWSのSNSを操作してみよう!~

小林先生

(株)ライトコードの小山(こやま)です!

この記事は、「Grails で AWS の SNS を操作してみた!~メール通知編~」の続編です。

前回は、Grails でメール通知機能を、実装していきました!

今回は、前回と同じく AWS の SNS を使って、「プッシュ通知」を実装していきたいと思います!

環境

今回の実装は、下記の項目を全て完了していることが前提となります。

環境がまだ整っていない方は、先に準備をしておきましょう!

  1. Grails の環境導入
  2. AWS へのアカウントの登録
  3. AWS CLI の導入
  4. XCode の導入
  5. iOS 端末を所持している
  6. Apple Developer Program(有償)に登録している
  7. Git 環境の導入

実際に動作確認をしたい方は、ターミナルなどで下記コマンドより、プッシュ通知確認用のファイルをクローンしてください。

では、始めていきましょう!

前回の記事

こちらの記事もオススメ!


用語について簡単な説明

プッシュ通知

プッシュ通知とは、スマホなどの端末において、メッセージや音などでユーザーに情報を通知する機能のことです。

p12ファイル

p12 ファイル とは、Public Key Cryptography Standards (公開鍵暗号標準のグループ)の、12番目の仕様のことです。

具体的には、公開鍵証明書や秘密鍵をパスワードの鍵で保護して、安全に保存や転送するために使用するファイル形式です。

SNS へのアプリケーションの登録で必要になります。

CSRファイル

CSR ファイルとは、開発用証明書を発行するときに必要となる、「証明書署名要求ファイル」のことです。

Mac のキーチェーンアクセスより、生成します。

CERファイル

CER ファイルとは、Apple Developer Program のサイトで生成できる、「開発用証明書」のことです。

生成するには、CSR ファイルが必要になります。

CERファイル(APNs用証明書)

CER ファイル(APNs用証明書)は、Apple Developer Program のサイトで生成できます。

生成するには、App ID」「CSR ファイルが必要になります。

プロビジョニングファイル

プロビジョニングファイルとは、App Store 以外で手に入れた iOS アプリでも、端末ダウンロードできるようにするバイナリファイルのことです。

このファイルは、Apple Developer Program のサイトで生成できます。

生成するには、App ID」「CSR ファイル」「端末登録が必要になります。

Cognito

Cognito とは、AWS において、シンプルでセキュアなユーザーの

  1. サインアップ
  2. サインイン
  3. アクセスコントロール

を行うサービスです。

今回は iOS アプリから、AWS の SNS にアクセスするときの、アクセスコントロールで利用します。

IAM

IAM とは、AWS のサービスやリソースへのアクセスを、安全に管理するサービスです。

こちらも、iOS アプリから AWS の SNS にアクセスするとき、アクセスコントロールで利用します。

APNs

APNs とは、Apple Push Notification Service というアップル社が運営するサービスのことです。

iOS 端末に、プッシュ通知を送るときは、必ずこのサービスを利用する必要があります。

p12ファイルの生成を行う

AWS の SNS を使って、プッシュ通知を送るためには、p12 ファイルが必要になります。

また、p12 ファイルを生成するまでの流れは、以下のとおりです。

p12 ファイルを生成するまでの流れ

CSRファイルの生成

CSR ファイルの生成については、過去の記事を参考にしてくださいね!

CSR ファイルの生成が完了したら、開発者証明書ファイルを生成していきましょう。

https://developer.apple.com/account/」にアクセスし、Certificates,Identifiers & Profiles(歯車マーク)を選択します。

開発者証明書ファイルの生成

開発者証明書ファイルは、「Certificates」より生成できます。

Software iOS App Development を選択
Choose File作成した CSR ファイル(CertificateSigningRequest.certSigningRequest)を選択

App IDの登録

App ID は、「Identifier」より登録できます。

Register a new identifierApp IDs を選択
Select a typeApp を選択
Description適当な説明を入力
Bundle IDExplicit を選択し、適当な ID を入力
CapabilitiesPush Notifications を選択

ちなみに、Bundle ID が既に使用されている場合は、Continue 後に Register ボタンが押せないので、変更する必要があります。

それでは、Bundle ID を控えておきましょう。

端末の登録

端末登録については、「Devices」より登録できます。

PlatformiOS, tvOS, watchOS を選択
Device Name適当な名前を入力
Device ID (UDID)Mac に端末を接続した状態で Xcode を起動します。

画面上より、Window > Devices and Simulators

identifier に表示されている文字列を入力してください。

プロビジョニングプロファイルの生成

このファイルは、「Profiles」より生成していきましょう。

DevelopmentiOS App Development を選択
App ID先程登録した App ID を選択
Select Certificates先程生成した開発者証明書を選択
Select Devices先程登録した端末を選択
Provisioning Profile Name適当な名前を入力

APNs用証明書の生成

APNs 用証明書は、「Certificates」より生成できます。

ServicesApple Push Notification service SSL (Sandbox) を選択
PlatformiOS を選択
App ID先程登録した App ID を選択
Choose File作成した CSR ファイル(CertificateSigningRequest.certSigningRequest)を選択

p12ファイルの生成

APNs 用証明書の生成でダウンロードした、「aps_development.cer」をダブルクリックして、キーチェーンアクセスを起動していきましょう!

「Apple Development IOS Push Services:.... 」という証明書を右クリックして、「Apple De....を書き出す」を選択します。

フォーマットは「個人情報交換(.p12)」を選択し、保存してください。

ここで、任意のパスワードを入力します。

その後、キーチェーンのパスワードの入力を要求されるので、これも入力して完了です!

AWSの設定を行う

iPhone 端末に、プッシュ通知を送れるよう、AWS の SNS で設定を行います。

SNS の設定ページにアクセスして、「Mobile > プッシュ通知 > プラットフォームアプリケーションの作成」を選択してください。

アプリケーション名適当な名前を入力
プッシュ通知プラットフォームApple iOS / VoIP / Mac を選択
ステータス有効にチェックを入れます。
サンドボックスでの開発に使用されます今回は本番ではないので、チェックを入れます。
プッシュ証明書タイプiOS プッシュ証明書 を選択
証明書先程生成した p12 ファイル を選択
証明書のパスワード先程設定したパスワードを入力

認証情報をファイルから読み込みのボタンをクリックして、証明書とプライベートキーを設定します。

プラットフォームアプリケーションの「作成ボタン」をクリックしましょう。

作成したプラットフォームアプリケーションの ARN を控えておいてください。

続けて、「トピック > トピックの作成」で、トピックを作成します。

名前適当な名前を入力
表示名 - オプション適当な表示名を入力

トピックの「作成ボタン」をクリックします。

このとき、作成したトピックの ARN を控えておきましょう。

Cognitoの設定

AWS で、Cognito の設定を行います。

まずは、Cognito の設定ページにアクセスして、ID プールの「管理ボタン」をクリック。

次に、新しい ID プールの「作成ボタン」をクリックします。

ID プール名適当な名前を入力
認証されていない ID に対してアクセスを有効にするチェックを入れます。
認証フローの設定チェック不要

その後は、以下の流れで進めていきましょう。

  1. プールの作成ボタンをクリック
  2. 詳細を表示
  3. 表示されてある「ロール名」も控える
  4. 「許可ボタン」をクリック
  5. AWS 認証情報の取得欄に表示されている「ID プールの ID」を控える

IAMの設定

AWS で IAM の設定を行います。

IAM の設定ページにアクセスして、「アクセス管理 > ロール」検索欄に、先程控えたロール名を入力します。

○○Auth_Role と○○Unauth_Role があると思うので、「○○Unauth_Role」をクリックして詳細を開きます。

その後は、以下のように進めていきましょう!

  1. 「ポリシーをアタッチします」のボタンをクリックして「SNS」と検索
  2. AmazonSNSFullAccess にチェック
  3. ポリシーのアタッチボタンをクリック

iOSアプリの設定を行う

クローンしたファイル「Grails_AWS_SNS4 > PushNotificationApp」を、Xcode で開きます。

PushNotificationApp > General」を開きます。

  1. 「Bundle Identifier」にBundle IDを入力
  2. 「PushNotificationApp > PushNotificationApp > AppDelegate.swift」を開く
  3. 59行目に ID プール ID を設定
  4. 68行目にプラットフォームアプリケーションの ARN を設定
  5. 77行目にトピックの ARN を設定

WEBアプリ(Grails)の設定を行う

クローンしたファイル「Grails_AWS_SNS4 > sns」を、IDE(統合開発環境)で開きます。

sns > grails-app[main] > conf > application.yml」を開きます。

115行目に、トピックの ARN を設定しておきましょう。

動作確認

Mac に端末を接続し、Xcode で端末を選択したあと、ビルドボタンをクリックします。

通知を許可したあとで、AWS の SNS 設定ページを確認してください。

ここでは、トピックのサブスクリプションに、1項目 ID が追加されていることを確認します。

クローンした「Grails_AWS_SNS4 > sns」で

を実行して「http://localhost:8080」にアクセスします。

操作 > 通知を送信」より、送信ボタンをクリックします。

通知が送信されれば成功です。

ただし、端末でアプリの画面を開いていると、通知が表示されませんので注意してください。

さいごに

通知機能の構成図

今回実装した通知機能の構成図は、ザックリとこのような内容となっています。

最低限の実装となっていますが、SNS の基本的な機能を実装してみました!

プッシュ通知は、うまく活用すれば、ユーザーのアクティブ率が向上します。

ただ、ユーザーにとって魅力のない通知を送ると「逆効果」になることもお忘れなく。

使うときは、ユーザーの目線に立って考えて、導入できれば良いですね!

以上で、「Grails で AWS の SNS を操作してみた!」シリーズは完結です。

この記事の内容が、少しでも SNS を使いたい方のお役に立てれば幸いです!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事

初心者が3ヶ月でどれくらいプログラミングができるようになるのか

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア

初心者が3ヶ月でどれくらいプログラミングができるようになるのか

初心者が3ヶ月でどれくらいプログラミングができるようになるのか