とある技術の開発日記

Diary of irregular phrase programmer

TwilioをASP.NET MVCで試しに使ってみた(導入編)

もう7月ですね一年の半分が終わったらしいですよ(白目

なかじ(@nakaji)さんを見習ってブログにも力を注いでいこうかと思っています。 一発目はTwilioネタです。

nakaji.hatenablog.com

先日はMicrosoftさんの「Microsoft Innovation Award 2015」に参加する機会があったので参加してきました。
当日の様子はレポート記事は人見知りな方のBlogを見てもらえれば良いと思います。

ascii.jp

zuvuyalink.net

実はこの会場でTwilioを使ったユーザー投票が行われたのですが、私的に今後の勉強会で使ってみたいとも思ったのでTwilioを使用してみました。

1.Twilioのユーザー登録

f:id:airish9:20150701163541p:plain

Twilio for KDDI Web Communications | クラウド電話API
Twilioのサイトからユーザー登録を行います。
ユーザー登録を行うと自動的にトライアルアカウントとなり一定期間(一定金額?)は支払いをすることなく使用する事ができます。

トライアルアカウントの制限や使用金額等に関しては以下の公式ドキュメントを参照

twilioforkwc.zendesk.com

なお、ユーザー登録時に使用した電話番号は検証済み電話番号扱いとなり、Twilioの電話番号と合わせて通話等に使用する事ができます。

2.Twilio電話番号の取得

アカウントを登録した状態ではTwilio電話番号が存在しないのでダッシュボードの画面や"Twilio電話番号"のタブから電話番号を購入します。

TwilioではAPIを使用して、このTwilio電話番号から発信したり、Twilio電話番号の着信後の処理をプログラミングする事ができます。(Inovation Awardで行ったようなアンケートは後者の受信を処理するパターン)

3.ASP.NET MVCにTwilio SDKを導入

Twilioは様々なプログラミング言語に対応していますが今回はC#で実装します。
まずはVisual Studioを使用してASP.NET MVCのテンプレートを作成します。(詳細は割愛)

TwilioのSDKはgithubで公開されており手順通りにNugetでプロジェクトに導入します。

github.com

1) Twilio.Apiの参照を追加
Install-Package Twilio
2) Twilio.MvcとTwilio.Twimlの参照を追加
Install-Package Twilio.Mvc

以上で基本的な準備は完了になります。

おまけ:サンプルプログラムでTwilioから電話をかける

Twilioを試しに使ってみるために、コンソールプログラムから登録時に使用した電話番号に電話をかけてみましょう。

  1. C#のコンソールプログラムテンプレートを選択
  2. パッケージマネージャーコンソールで"Install-Package Twilio"を行う。
  3. Mainメソッド内のコードに以下の内容を記述して実行
using System;
using Twilio;
class TwilioSample 
{
  static void Main(string[] args) 
  {
    // 認証情報
    string AccountSid = "{{ACCOUNT SID}}";
    string AuthToken = "{{ AUTH TOKEN }}";
    var twilio = new TwilioRestClient(AccountSid, AuthToken);
 
    var options = new CallOptions();
    options.Url = "http://demo.twilio.com/docs/voice.xml";
    options.To = "+819012345675";
    options.From = "+815011112222";
    var call = twilio.InitiateOutboundCall(options);
     
    Console.WriteLine(call.Sid);
  }
}

この例ではTwilio電話番号(050-1111-2222)から登録時電話番号(090-1234-5678)に対して電話をかける例です。 実行すると自分の携帯に電話がかかってきて、英語のメッセージが行われた後に電話が切れると思います。

次回はASP.NET MVCを使用して電話の受信プログラムを行いたいと思います。