SendGridでリバーシ
- 2014年11月14日
- by SendGrid
- Category: 技術ネタ
この記事は Play Reversi Using SendGrid の抄訳です。
SendGridは月間130億通のメールを配信する強力なメールサービスですが、そんなSendGridのAPIは楽しむために利用することもできます!
今回はSendGridを使ったゲームをご紹介します。その名も「SendGrid-Reversi」。メールを介してリバーシで遊ぶことができます。SendGrid-ReversiのソースコードはGitHub上で公開されていますので、詳しい使い方はREADMEをご覧ください。作者(弊社佐藤)のブログではより詳しい動作の仕組みも紹介されています。
このアプリケーションはSinatra上で動作します。データはMongoDBにストアされ、様々なSendGrid APIを利用しています。
アプリケーションの起動
ゲームを始める前に、SendGridに対して以下の設定を行う必要がありますが、SendGrid-Reversiはアプリケーション起動時にこれら全てをAPIを経由して自動的に行います。
- Template Engineを利用したメールテンプレートの作成と有効化
- Web APIを利用した各Appsの設定
- Parse Webhookの設定
- Event Notificationの有効化
- Click Trackingの有効化
メールによるゲームの開始
対戦相手のメールアドレスを件名に設定して、アプリケーション宛にメールを送信することでゲームを開始することができます。Parse Webhookを利用して受信したメールの内容をアプリケーションが受信して、件名から対戦相手のメールアドレスを抽出しています。
各プレイヤーへのメール送信
各プレイヤーはアプリケーションからメールを受信します。このメール(冒頭の画像)はTemplate Engineで管理されたメールテンプレートを利用しており、メールの内容(各マスの画像や取得済みの石の数など)はSMTP APIのSubstitution Tagを利用して置換されます。
メールでClick to Play
プレイヤーがすることは、受信したメールを開いて石を置きたい場所をクリックする、これだけです。簡単ですね。このクリックイベントはSendGridからアプリケーションにPOSTされます。アプリケーションはイベントを処理して各プレイヤーにメールを再度送信します。
このようにしてメールを介してゲームを進めることができます。
さらに、BCC Appを利用することでゲームの履歴を記録したり、New Relic AppとOpen Tracking Appを組み合わせてゲームの状況を分析することもできます。
これは単なるデモアプリケーションですが、各要素は実際のアプリケーションでも応用することができます。是非遊んでみてください!