メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Twilio Client用のサーバーのセットアップ

TwiMLアプリケーションを作成する

A TwiML Application is a configuration profile created in the Twilio Console that will be used to specify the Webhook URL that Twilio will use when a connection is made from a Client into Twilio. To create one, visit TwiML Apps in the Console and click 'Create TwiML App'. Enter 'My Client App' (or whatever you prefer) as the app's Friendly Name and click 'Save'.

Voice URL とメッセージ URL についてはまだ気にしないでください。もう少ししたら入力します。

アプリケーションが保存されたら、ApplicationSid(「APa4983020a0b29fb5db1b1dc68e322fbe」のような長い文字列)をメモしてください。 Twilio Clientのセットアップが済んだときに必要になります。

バックエンドのアプリケーションサーバーを構築する

2つの機能を実行するためにサーバーをデプロイすることが必要です:

  1. Provide a Capability Token to our client application.
  2. Serve up TwiML; this instructs Twilio what to do when our client connects to Twilio.

サーバーはTwilioがサポートする6種類の言語、すなわちC#、Java、Node.js、PHP、Python、またはRubyを使用して構築できます。

ヘルパーライブラリーを入手する

Twilioヘルパーライブラリーを使用すると、クライアントアプリケーション用のケイパビリティートークンを作成できます。 お好みの言語用の手順に従って、ヘルパーライブラリーのインストールを行ってください。

ケイパビリティトークン

ケイパビリティートークンを使用すると、Twilioの機能をWebおよびモバイルアプリケーションに、JavaScriptや他のクライアント側の環境に認証トークンを公開することなく追加することができます。 サーバーでトークンを作成し、デバイスにどのような機能を持たせたいかを指定できます。 不正行為に対する保護のため、すべてのトークンの生存期間は限られています。 生存期間は最大24時間ですが、アプリケーションに対しては、可能限りこれを短く設定すべきです。

        
        
        
        

        For more details, check out our Capability Tokens guide.

        TwiMLをレスポンスする

        Finally, your server needs to be able to produce TwiML output that can be used by Twilio to route your connections from your client apps. This may be for allowing outgoing calls to regular phones or client-to-client calls or anything else you can do with TwiML such as conferencing or creating IVRs. Below you can see example code that uses the Twilio Helper Library to generate a TwiML response that simply speaks a greeting.

              
              
              
              

              アプリケーションサーバーをホストする

              Now, we need to make this application accessible via the public Internet. Why? Because Twilio's servers (which are connected to the phone network) need to access your server in order to fetch instructions for how your Twilio calls should be handled. This is a standard requirement for any Twilio-powered application. You can do this with any public hosting service such as Heroku, AWS, Azure, Digital Ocean, etc. For testing, however, you can use ngrok to make your local development machine accessible.

              ngrokを使用して、ローカルで実行する

              まず、ngrokをダウンロードします。 アプリケーションサーバーがポート3000からのリクエストをリッスンしている場合は、下記のように実行できます:

              ngrok http -host-header="localhost:3000" 3000
              

              これによって、ランダムに生成された(しかしパブリックにアクセスできる)URLが作成され、TwiML AppのVoice URLとしてTwilioに指定することになります。

              ngrokの画面

              テストに使用できるもっとも簡単な機能は、ケイパビリティートークン生成です。 お使いのWebブラウザーを開いて、/tokenルートに対してリクエストを発行し、サーバーから返ってきたものを確認してください。 入力すべきURLは、 http://your.server.name/token のようになります。 たとえば、ngrokを実行している場合は、直前のスクリーンショットでご覧いただけるように、URLは次のようになります:

              https://aaf29606.ngrok.io/token
              

              ブラウザーでそのURLをリクエストすると、tokenという名前でファイルがダウンロードされるか、もしかしたらブラウザーウィンドウに文字列が表示されます(ブラウザーのapplication/jwt content-typeの処理方法によって異なります)。 文字列(ブラウザーに表示されるか、ダウンロードされたファイルに含まれるものです)は下記のようなものです:

              eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InNjb3BlOmNsaWVudDppbmNvbWluZz9jbGllbnROYW1lPWpvZXkgc2NvcGU6Y2xpZW50Om91dGdvaW5nP2FwcFNpZD1BUFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYJmNsaWVudE5hbWU9am9leSIsImlzcyI6IkFDWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgiLCJleHAiOjE0NzEzNzIxNjF9.FY547naRvxnDQDpJiAAN5oP5lf606HmIQDUCebUjhXE
              

              これはJSON Web Token、略してJWTと呼ばれています。 この文字列をjwt.ioのWebサイトに渡すことで、トークンの中身を見ることができます。

              JWT JSON Web Token

              Within the payload of the token, you will see your application SID, client name, and your Account SID. The token is signed with your Auth Token, which Twilio will use to verify the token.

              TwiMLの生成をテストする

              TwiMLの生成については、/voiceルートをテストしようと思いますが、今回、ハンドラーはPOSTリクエストが受け入れ可能になっています。 これはほとんどのTwilioのWebhookにおける既定のリクエストタイプです。 ブラウザーからPOSTリクエストをテストするのは簡単ではないため、PostmanFiddlerといったようなツールを使用すると良いでしょう。 あるいは、単にコマンドラインから以下のようにcurlを実行できます:

              curl -X POST https://aaf29606.ngrok.io/voice -d ''
              

              Windowsをご使用の場合は、PowerShellを開いて下記コマンドを実行します:

              Invoke-WebRequest -Method POST https://aaf29606.ngrok.io/voice
              

              https://aaf29606.ngrok.io/voiceをあなたのサーバーアプリケーションの正しいURLに置き換えていることを確認してください。

              下記のようなXMLが表示されたら成功です(おそらく、それほど綺麗に書式設定されないでしょう)。

              <?xml version="1.0" encoding="UTF-8"?>
              <Response>
                  <Say>Thanks for calling!</Say>
              </Response>
              
              David Prothero Devin Rader
              Rate this page:

              ヘルプが必要ですか?

              誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。