SendGridでリバーシ

SendGridでリバーシ

この記事は Play Reversi Using SendGrid の抄訳です。

SendGridは月間130億通のメールを配信する強力なメールサービスですが、そんなSendGridのAPIは楽しむために利用することもできます!

今回はSendGridを使ったゲームをご紹介します。その名も「SendGrid-Reversi」。メールを介してリバーシで遊ぶことができます。SendGrid-ReversiのソースコードはGitHub上で公開されていますので、詳しい使い方はREADMEをご覧ください。作者(弊社佐藤)のブログではより詳しい動作の仕組みも紹介されています。

このアプリケーションはSinatra上で動作します。データはMongoDBにストアされ、様々なSendGrid APIを利用しています。

アプリケーションの起動

ゲームを始める前に、SendGridに対して以下の設定を行う必要がありますが、SendGrid-Reversiはアプリケーション起動時にこれら全てをAPIを経由して自動的に行います。

メールによるゲームの開始

対戦相手のメールアドレスを件名に設定して、アプリケーション宛にメールを送信することでゲームを開始することができます。Parse Webhookを利用して受信したメールの内容をアプリケーションが受信して、件名から対戦相手のメールアドレスを抽出しています。

各プレイヤーへのメール送信

各プレイヤーはアプリケーションからメールを受信します。このメール(冒頭の画像)はTemplate Engineで管理されたメールテンプレートを利用しており、メールの内容(各マスの画像や取得済みの石の数など)はSMTP APISubstitution Tagを利用して置換されます。

メールでClick to Play

プレイヤーがすることは、受信したメールを開いて石を置きたい場所をクリックする、これだけです。簡単ですね。このクリックイベントはSendGridからアプリケーションにPOSTされます。アプリケーションはイベントを処理して各プレイヤーにメールを再度送信します。

このようにしてメールを介してゲームを進めることができます。

さらに、BCC Appを利用することでゲームの履歴を記録したり、New Relic AppOpen Tracking Appを組み合わせてゲームの状況を分析することもできます。

これは単なるデモアプリケーションですが、各要素は実際のアプリケーションでも応用することができます。是非遊んでみてください!