Railsアプリでバウンスなどのイベントデータを保存・活用する方法(Event Webhook)
- 2015年3月13日
- by SendGrid
- Category: 技術ネタ
SendGridは、メール配信に関わる様々なイベント(メールの送信、バウンス、開封、クリック、配信停止、迷惑メール報告など)を通知するEvent Webhookという機能を提供しています。Event Webhookは各種イベントデータを活用するために必須の機能ですが、イベントデータを受信するWebアプリケーションを用意する必要があります。
以前、イベントデータをMongoDBにストアする方法をご紹介しましたが、今回はストアしたデータの検索や詳細の確認まで可能なサンプルアプリケーション「EventKit-Rails」をご紹介します。EventKit-RailsはSendGridが提供するオープンソースのサンプルアプリケーションです。
はじめに
今回は、EventKit-Railsをセットアップする2種類の方法をご紹介します。
- Heroku
最も簡単な構築手順です。HerokuとSendGridのアカウントがあればすぐに試すことができます。 - ローカルマシン
ローカルマシン上にいくつかの環境の準備が必要になりますが、SendGridのアカウントだけで試すことができます。
Heroku
前提条件
1. Herokuへデプロイ
EventKit-Railsリポジトリにアクセスして「Deploy to Heroku」ボタンを選択します。
App Nameに適当な名前を入力して、「Deploy for Free」ボタンを選択します。
※App Nameは、空でも構いません。入力した名前はアプリのURLとして利用されます。
デプロイが完了したら「View it」リンクを選択します。EventKit Setup画面が表示されたらデプロイは完了です。
2. EventKitとSendGridのセットアップ
EventKit SetupのStep 1で基本認証を設定します。適当なUsernameとPasswordを入力して「送信」ボタンを選択します。
※「WARNING!」という警告が表示されますが、これはRailsアプリケーションのSSLが有効化されていないために表示されます。
Step2では、SendGridのEvent Notificationに設定するURLが表示されるので、クリップボードにコピーして「Apps page」リンクを選択します。
SendGridにログインするとApps一覧が表示されるので、Event Notificationを有効化してください。Event Notificationの設定画面を開き、先ほどクリップボードにコピーしたURLを「HTTP Post URL」に貼り付けて「Save」を選択して保存します。操作方法については操作マニュアル(新規会員登録が必要)をご確認ください。
※「Test Your Integration」でEvent Webhookの受け口との接続確認をすることができますが、基本認証に対応していないため、今回はステータスコードは常に401となります。
※Event Notificationの設定変更後反映されるまで数分程度の時間がかかります。
再びEventKitの画面に戻り、「Continue」ボタンを選択します。
最後にStep3で「Log In」ボタンを選択して基本認証の入力画面が表示されたら最初に設定した基本認証のUsernameとPasswordを入力します。EventKit画面が表示されたらセットアップは完了です。
3. メールの送信と動作確認
API Workshopを使ってメールを送信します。
EventKitの画面を更新すると、いくつかのイベントを確認することができます。
各イベントを選択することでイベントの詳細を確認することができます。
ローカルマシン
前提条件
※Ruby、bundlerの必要バージョンはGemfileをご確認ください。その他のモジュールについては最新版をご利用ください。
1. セットアップ手順
EventKit-Railsのコードをリポジトリからクローンします。
git clone https://github.com/sendgrid/eventkit-rails.git
リポジトリ内に移動してRailsアプリケーションを起動します。TCPポート3000番で待ち受けを開始します。
cd eventkit-rails bundle install rake db:migrate rails server
ngrokで公開したURLにブラウザでアクセスします。
https://xxxxxxxx.ngrok.com/
※「xxxxxxxx」部分はngrokが自動発行します。
以降の手順はHerokuにデプロイした場合の「2. EventKitとSendGridのセットアップ」以降と同様です。ただし、SendGridのEvent Notificationには、ngrokで公開したURLを設定する必要があるのでご注意ください。
さいごに
EventKit-Railsはシンプルなアプリケーションですが、メールアドレス、カテゴリ、イベントタイプ、SMTP-IDなど様々な条件を指定して検索したり、検索結果をCSVでダウンロードすることができます。
イベントデータを手軽に活用することができますので、是非お試しください!
参考