AKATSUKA x HANEMAN TECH

My diary of cloud computing, Community, working strategy.

Twilio on Rails【日本語訳】

Introduction

 

スマートフォンの普及は世界中で年々伸びてきていますが、SMSテキストメッセージがまだまだ最も広い顧客層をもっています。特に発展途上国では主流です。この広い顧客層を必要としているRubyアプリケーションにはTwilioをお勧めします。

 

TwilioをRailsアプリケーションに簡単に追加することができます。この記事はその方法を説明していきます。

 

・Twilioアカウントの取得

 

・TwilioのSandboxアプリでのテスト

 

・TwilioとRailsアプリケーションの統合

 

・Twilioと統合されたRailsアプリケーションの設定

 

さあ、はじめましょう!

 

Signing Up for Twilio

Twilioにサインアップするために必要な情報は名前、emailアドレスとパスワードだけです。サインアップして初めてログインすると、ダッシュボードに導かれます。ここで必要な情報・説明は十分に提供されます。サインアップすると、30ドルのクレジットが手に入ります。このクレジットはTwilioでテキストメッセージを受信・送信するたびに使われます。

Twilio Dashboard

ダッシュボードの左下部分にSandboxというアプリケーションがあります。ここで

 

Twilioの開発作業を行います。Sandboxで作業することによって、クレジットを消費せずにSMSアプリケーションのテストが可能です。他にもどの携帯電話にテキストメッセージを送れるのかと、どの携帯電話からテキストメッセージを送れるのかを限定することが出来ます。Sandboxについてわかったところで、実際つかってみましょう。

 

Testing Your Account Using the Sandbox

SMS Sandboxをテストするには、あなたの携帯電話から実際にsandboxナンバーにテキストメッセージを送ってください。内容はなんでもかまいません。”Hello Twilio”で送ると、以下のような返信があります:

Sent from the Twilio Sandbox Number - Error: No PIN. Make sure you begin your message with the Sandbox PIN from your Twilio Dashboard.

 

Twilio Sandboxを使用する際にはPINを設定する必要があります。PINはダッシュボードのSandboxナンバーの下にあります。PINをテキストメッセージの頭に入力してください。例:

28910293 hello twilio

 

そうするとデフォルトのTwilioサービスから返信が来ます:

http://demo.twilio.com/welcome/sms

 

これであなたのアカウントが問題なく動作している確認がとれました。

 

次はRailsアプリケーションでの活用です。

 

Integrating Twilio with Your Rails App

 

ウェブアプリケーションとTwilioはTwiMLというXML文書で通信します。例:

f:id:tech-haneman:20130801044104p:plain

このTwiMLの部分は電話番号にかけてきたユーザーへのレスポンスを記述しています。

電話中にメッセージを話し、その後ユーザーにSMSメッセージを送信します。しかし、TwiMLを書くのは楽しいことではありません。そこで、twilio-ruby gemを使うことによってTwiMLを要約します。

 

あなたのRailsアプリケーションのGemfileにtwilio-ruby gemを追加してください:

f:id:tech-haneman:20130801044154p:plain

これでテキストメッセージを送るためのライブラリが用意できました。

 

早速使ってみましょう!

 

Sending a Text Message Using Twilio

Railsアプリケーションを使ってテキストメッセージを送るのは簡単です。しかしその前に設定しなければならないことがあります。Twilio Sandboxを使ってアプリケーションのテストを行うには、SMSメッセージを送る予定の電話番号を認証する必要があります。認証するにはNumbersタブのVerify Number buttonをクリックします。認証を完了するにはいくつかのステップがあります。

 

f:id:tech-haneman:20130801044324p:plain

 電話番号の認証を完了しますと、アプリケーションからテキストメッセージを送ることができます。以下のコードは例です:

 

f:id:tech-haneman:20130801044431p:plain

 この例では、send_text_messageアクションが電話番号を受取り、SMS経由でその電話番号にハードコードされたメッセージを中継する。Twilio_sid, twilio_token, twilio_phone_number変数はtwilio-ruby gemを使って認証のための構成情報を保持しています。一般的には、アプリケーションがロードされるときにロードされるconfiguration fileに入れておきますが、この例ではわかりやすいようにローカル変数に入れています。

 

 

 

Receiving a Text Message Using Twilio

 

テキストメッセージを受信するには、Twilioが到達可能なエンドポイントを公開する必要があります。例:

f:id:tech-haneman:20130801044615p:plain

 この例では、indexアクションがTwilioからPOSTを受信します。メッセージボディーと送信者の電話番号をつかみ、ログします。Twilio POSTから情報を検索することは、

 

Params hashを見るのと同じくらい単純です:

f:id:tech-haneman:20130801044645p:plain

 テキストメッセージがあなたのアプリケーションに達するには、Twilioにどこにリクエストを送るのか言う必要がります。これはダッシュボードのSandboxアプリケーション・セクションで行います。SMS URLフィールドでパブリック・エンドポイントを指定し、”Save”をクリックしてください。

 

 

 

ローカルのサーバーを使っていて、パブリック・エンドポイントがない場合は、tunnlrのようなサービスで作ることができます。これはあなたのローカル・マシーンにSSH tunnel付のURLを生成します。

 

あなたのアプリケーションのパブリック・エンドポイントはこのようになるかもしれません:

http://web1.tunnlr.com:89530/sms

 

Configuring Twilio for Production

SMSが使用可能になったアプリケーションを生産環境でデプロイするには、3つの事をする必要があります:Twilio電話番号を買う、買った電話番号をあなたのアプリケーションに設定する、Twilioに生産エンドポイントを設定する。

 

電話番号を買うには、支払い情報の入力と電話番号を準備する必要があります。このプロセスはTwilioがガイドしてくれます。この記事を書いている時点での値段は、月1ドルとテキストにつき1ドルです。

 

また、新しく購入した電話番号で、あなたのアプリケーションのTwilio電話番号を更新します。上の例題で、Twilio電話番号を含む変数があります。この値を新しく購入した電話番号に変えてください。

 

最後に、SandboxでもしたようにSMSエンドポイントを設定します。

“Numbers>Twilio Numbers”タブをクリックし、新しく購入した電話番号をクリックしてください。”SMS Request URL”フィールドで、パブリック・エンドポイントURLを指定し、”Save Changes”をクリックしてください。

 

Conclusion

SMSはあなたのウェブアプリケーションのユーザーに優れたオルタナティブ・インターフェースを提供します。シンプルでお手頃な方法で始めたいと思っている人には、Twilioはまさにピッタリです。どのよに始めるかわかったところで、あなたはTwilioを使って何を作りますか??