Railsアプリでバウンスなどのイベントデータを保存・活用する方法(Event Webhook)

Eventkit-Rails

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」ボタンを選択します。

Heroku

App Nameに適当な名前を入力して、「Deploy for Free」ボタンを選択します。
※App Nameは、空でも構いません。入力した名前はアプリのURLとして利用されます。

Herokuへデプロイ

デプロイが完了したら「View it」リンクを選択します。EventKit Setup画面が表示されたらデプロイは完了です。

デプロイの完了

2. EventKitとSendGridのセットアップ

EventKit SetupのStep 1で基本認証を設定します。適当なUsernameとPasswordを入力して「送信」ボタンを選択します。
※「WARNING!」という警告が表示されますが、これはRailsアプリケーションのSSLが有効化されていないために表示されます。

セットアップStep1

Step2では、SendGridのEvent Notificationに設定するURLが表示されるので、クリップボードにコピーして「Apps page」リンクを選択します。

セットアップStep2

SendGridにログインするとApps一覧が表示されるので、Event Notificationを有効化してください。Event Notificationの設定画面を開き、先ほどクリップボードにコピーしたURLを「HTTP Post URL」に貼り付けて「Save」を選択して保存します。操作方法については操作マニュアル新規会員登録が必要)をご確認ください。

※「Test Your Integration」でEvent Webhookの受け口との接続確認をすることができますが、基本認証に対応していないため、今回はステータスコードは常に401となります。
※Event Notificationの設定変更後反映されるまで数分程度の時間がかかります。

Event Notification

再びEventKitの画面に戻り、「Continue」ボタンを選択します。

API Workshop

最後にStep3で「Log In」ボタンを選択して基本認証の入力画面が表示されたら最初に設定した基本認証のUsernameとPasswordを入力します。EventKit画面が表示されたらセットアップは完了です。

セットアップStep2
基本認証

3. メールの送信と動作確認

API Workshopを使ってメールを送信します。

セットアップStep3

EventKitの画面を更新すると、いくつかのイベントを確認することができます。

Eventkit-Rails

各イベントを選択することでイベントの詳細を確認することができます。

基本認証ログイン

ローカルマシン

前提条件

※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でダウンロードすることができます。

イベントデータを手軽に活用することができますので、是非お試しください!

参考