1. HOME
  2. ブログ
  3. IT技術
  4. 【前編】GrailsでAWSのSNSを操作してみた!~メール通知編~
【前編】GrailsでAWSのSNSを操作してみた!~メール通知編~

【前編】GrailsでAWSのSNSを操作してみた!~メール通知編~

メール通知編~Grailsを使ってAWSのSNSを操作してみよう!~

小林先生

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

今回は、AWS の SNS を、Grails を使って操作してみようと思います。

具体的には、メールアドレスを登録して、メッセージを通知する処理を実装していきます。

また今回の実装は、「Grails の環境導入」「AWS へのアカウントの登録」が完了している前提となります!

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


用語について簡単な説明

Grails

Grails(グレイルス)とは、プログラミング言語「Groovy」を使用したフレームワークです。

  1. Ruby なら、Ruby on Rails
  2. PHP なら、Laravel
  3. Python なら、Django
  4. Groovy なら、Grails

といった感じです。

Groovy

Groovy(グルービー)とは、Java プラットフォーム上で動作する、動的なプログラミング言語です。

一言で表すなら、Java をより扱いやすくした、Java と同様の感覚で扱える言語ともいえます。

フレームワーク

フレームワークとは、アプリケーションを開発するときの、土台となるソフトウェアのことです。

土台が作られていることで、目的のアプリケーション開発を、より短期間で開発することができます。

AWSのSNS

AWS の SNS とは、「Amazon Web Service Simple Notification Service」の略称です。

主に、通知を送るためのサービスとなります。

【準備】Grailsで実装する前にAWSを設定する

AWS の SNS のページより、通知先を指定するトピックを作成します。

AWS-SNS

トピックの「名前」は、わかりやすい名前を付けましょう。

「表示名」は、メール通知のとき、メールタイトルとして表示されます。

また、トピックを作成すると、トピックに対して ARN というものが割り振られます。

このトピックの ARN は、後で使うので、わかりやすい場所に控えておきましょう。

トピック ARN は、セキュアな情報なので、取り扱いに注意してください。

今回は、メール通知のみを実装するだけですので、AWS の SNS ページで行う作業は、これで終了です。

AWSのCLIを導入しておく

AWS の CLI は、ローカルで動作確認を行うときに使います。

まだ、AWS の CLI を導入していない方は、先に導入しておきましょう。

GrailsでSNSの処理を実装

まずは、Grails アプリを生成していきましょう!

次に、コントローラーとサービスを生成します。

SNS を使うために、build.gradle の dependencies に、以下の2項目を追加してください。

トピックの送信処理を実装する

では、トピックの送信を行うコードを 、「SnsService.groovy」に実装します。

import に、以下の4項目を追加していきましょう。

SnsService クラスの中に、下記のコードを追加します。

2行目で、AWS のリージョンを指定しています。

大体の方は、東京(AP_NORTHEAST_1)だと思いますが、違うリージョンを利用されている方は書き換えておいてくださいね!

SnsController.groovy の index メソッドに、サービスを呼び出すコードを追加します。

通知メッセージを受け取れるようにする

ここで、Grails を一旦実行します。

http://localhost:8080」へアクセスし、sns.SnsController へのリンクをクリックすると、真っ白な画面が表示されるかと思います。

AWS の SNS を確認してみると、トピックのサブスクリプションに、メールアドレスが追加されているはずです。

ここで重要なのが、サブスクリプションに登録しただけでは、メールに通知メッセージが届かないこと。

また、登録したメールアドレス宛に、「AWS Notification - Subscription Confirmation」というメールが届いてるはずです。

そのメールを開いて、記載してあるリンクより、サブスクリプションを確認しておきましょう。

そうすることで、通知を受け取ることができるようになります。

通知メッセージを発行する処理を実装

続いて、登録されたメールアドレスに対して、通知メッセージを発行する実装を行っていきます。

「SnsService.groovy」を編集していきましょう。

import に、以下の1項目を追加します。

次に、sendMessage メソッドも追加していきます。

先程と同じく、トピックの ARN を設定し、通知したいメッセージも設定してみましょう。

最後に、SnsController.groovy の index メソッドに、sendMessage を呼び出すコードを追加します。

お疲れさまでした!

実装は、これで完成です。

Grailsを実行して確認してみよう!

ここまで実装できたら、再度 Grails を実行します。

http://localhost:8080」へアクセスして、sns.SnsController へのリンクを、クリックしてみましょう。

トピックへ登録したメールアドレス宛に、メッセージが届けば成功です!

プッシュ通知編へつづく!

今回は、Grails で SNS を使うための、最低限の実装をしていきました。

通常であれば、メールではなく、スマートフォンへのプッシュ通知として使うことが多いかと思います。

その場合は、プラットフォームアプリケーションの作成や、アプリケーションエンドポイントの実装などが必要になってきます。

今回、実装したコードの詳細については、以下をご覧ください。

【GitHub:最低限実装(Grails_AWS_SNS)】
https://github.com/KonoLevel1/Grails_AWS_SNS

応用したものについては、以下となります。

【GitHub:応用編実装(Grails_AWS_SNS2)】
https://github.com/KonoLevel1/Grails_AWS_SNS2

さて次回は、一歩進めて AWS の SNS を使って、プッシュ通知機能を実装していきたいと思います。

次回もお楽しみに!

プッシュ通知編はこちら!

記事を書いた人

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

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


関連記事

採用情報

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

バックエンドエンジニア

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

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

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア