メニュー

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?

Programmable Voice クイックスタート for Node.js

With just a few lines of code, your Node.js application can make and receive phone calls with Twilio Programmable Voice.

This Node.js quickstart will teach you how to do this using our REST API and the Twilio Node.js helper library to ease development.

このクイックスタートでは、下記のことを学んでいきます:

  1. Twilioにサインアップして、音声通話機能を持ったはじめてのTwilio電話番号を入手する
  2. 通話の発着信を行えるように開発環境をセットアップする
  3. MP3ファイルを再生する通話を発信する
  4. 通話を着信させ、テキストtoスピーチを使用して発信者にメッセージを読み上げる応答を返す

ビデオを見ながらの入門がお好みですか? Node.jsで通話の発着信を行う方法 YouTubeビデオ (英語) をご覧ください。

Show me how it's done!

すでにTwilioアカウントと音声通話機能を持ったTwilio電話番号をお持ちなら、すでに準備万端です! ログインして次のステップまで読み飛ばしてください。

Before you can make a call from Node.js, you'll need to sign up for a Twilio account or log in to an account you already have.

The next thing you'll need is a voice-capable Twilio phone number. If you don't currently own a Twilio phone number with voice call functionality, you'll need to purchase one. After navigating to the Buy a Number page, check the "Voice" box and click "Search."

音声通話の利用可能な電話番号の検索

すると、利用可能な電話番号と、その機能の一覧が表示されます。 お好みに合った番号が見つかったら「購入」をクリックすると、それがアカウントに追加されます。

これでTwilioアカウントとプログラマブルな電話番号が手に入ったので、通話の発信に必要な基本ツールが揃ったことになります。

TwilioのHTTP APIを使用して通話を発信できますが、Node.js用のTwilioモジュールを使用してこれをより容易にします。 ここでこれをインストールしましょう。

セットアップ方法を教えてください!

すでに他のNode.jsクイックスタートを終えていて、Twilio Node.jsモジュールがインストールされている場合は、このステップを読み飛ばしてすぐに最初の通話を発信できます。

ターミナルを開いて下記のコマンドを入力することで、すでにNode.jsがすでにPCにインストール済みかどうか確認できます:

$ node --version

下記のように表示されます:

$ node --version
v8.9.1

If you're on version 2.11 or earlier, we recommend you upgrade with the most recent version.

Node.jsがインストールされていない場合は、ターミナルで下記のコマンドをインストールすることで別のパッケージマネージャーであるhomebrewでインストールを行えます:

brew install node

Windows PCをお使いの場合は、nvm-windowsをインストールして、Node.jsとそのパッケージマネージャーであるnpmをインストールしてください。 Windowsユーザーはこちらの素晴らしいチュートリアルの手順にしたがってインストールできます。

Twilio Node.jsモジュールをインストールする

ライブラリーをインストールするもっとも簡単な方法は、必要なライブラリーのインストールに使用できるNode.jsのパッケージマネージャーであるnpmを使用することです。 Nodeおよびnpmがすでにインストールされたマシン上でターミナル、またはコマンドライン・インターフェイスを開き、新規のディレクトリーで下記のコマンドを実行します。

npm install twilio
All set! Let's make that phone call

Node.jsで通話を発信する

ここで新Twilio Node.jsライブラリーを活用しましょう。 

単一ののAPIリクエストで、先ほど購入したTwilio電話番号から通話を発信できます。 "make_call.js" という名前の新規ファイルを開き、下記コードをペーストします。

Loading Code Sample...
      
      
          
          
          
          
        

      This code starts a phone call between the two phone numbers that we pass as arguments. The 'from' number is our Twilio number, and the 'to' number is who we want to call.

      The URL argument points to some TwiML, which tells Twilio what to do next when our recipient answers their phone. This TwiML instructs Twilio to read a message using text to speech and then play an MP3.

      しかしコードが動作するようになる前に、皆さんのTwilioアカウントで機能するように少々編集が必要です。

      プレースホルダーのクレデンシャル値を置き換える

      accountSidおよびauthTokenに対応するプレースホルダー値を、お使いのTwilioの認証情報に置き換えます。

      https://jp.twilio.com/console にアクセスしてログインします。 このページ上で、今回のようなTwilio Client経由でメッセージを送信する際に常に必要になる一意のアカウントSIDおよび認証トークンが見つかります。 認証トークンは、目玉アイコンをクリックすると表示されます:

      make_call.jsを開き、accountSidおよびauthTokenに対応する値をご使用のアカウントの一意な値に置き換えます。

      ご注意ください: 初めのうちは認証情報をハードコーディングしても構いませんが、本番環境にデプロイするにあたっては、環境変数を使用してこれらが漏洩しないようにしてください。 追加情報については、環境変数の設定方法を参照してください。

      toおよびfrom電話番号を置き換える

      数分前に購入した、音声通話機能対応の電話番号を覚えていますか? どうぞ、既存のfrom番号をご自身の番号に置き換えてください。 また、E.164形式が使用されていることも確認します。

      [+][country code][phone number including area code]

      Next, replace the to phone number with your mobile phone number. This number can be for any phone that can receive calls, but it’s a good idea to test with your phone so that you can see the magic happen! As above, you should use E.164 formatting for this value.

      変更を保存し、ターミナルから下記のコマンドを実行してコードを実行します:

      node make_call.js
      

      これにて以上です! Twilio番号からの通話が着信し、短いメッセージが読み上げられます。😉

      トライアルアカウントをご使用の場合、Twilioで検証済みの電話番号に発信先が制限されます。 電話番号はTwilioコンソール内の検証済み発信者番号にて検証できます。 その他のトライアルアカウントの制限については、無料のTwilioトライアルアカウントの仕組みについてのガイドを参照してください。

      続いて、Twilio電話番号にかかってきた通話に応答する方法を学習しましょう。 まずはExpressサーバーを用意して起動しておく必要があります。

      Let's go!

      Node.jsとExpressで着信通話に応答する

      When your Twilio number receives an incoming phone call, it will send an HTTP request to a server you control. This callback mechanism is known as a webhook. When Twilio sends your application a request, it expects a response in the TwiML XML format that tells it how to respond to the call.

      To handle incoming phone calls we'll need a lightweight web application to accept incoming HTTP requests from Twilio. While you can use any number of web frameworks to make and receive calls from your application, we'll use Node.js with the Express framework in this quickstart.

      コマンドラインで下記のコマンドを実行します

      npm install express --save
      

      「server.js」という名前のファイルを作成して下記のコードを使用し、受信メッセージを処理できるサーバーを作成します。

      Loading Code Sample...
          
          
              
              
              
              
            

          下記コマンドでサーバーを実行します:

          node server.js
          

          If you open up the local port at http://127.0.0.1:1337/, you will see that the server running on port 1337 returns some XML to your browser with the message we'd like to read to incoming calls.

          これで、あとやっておくべきことはこのエンドポイントをTwilioからアクセスできるようにすることです。

          Twilioが皆さんのアプリケーションと対話するには?

          Twilioがアプリケーションと通信できるようにする

          着信通話に対する応答の中でTwilioに行なって欲しいことを指示できるようになる前に、まず皆さんのサーバーをインターネット上に公開することです。 ローカルの開発サーバーの実行時は、それがローカルネットワーク上からしかアクセスできない見込みが非常に高くなっています。 でもご心配なく。 サーバーをテストする簡単な方法をお見せします。

          Many Twilio products and services use webhooks to communicate with your application. For example, when Twilio receives an incoming call, it reaches out to a specific URL you provide to search for instructions on how to handle the response.

          The small piece of code in server.js is an example of one instruction you can use to 'speak' back to the caller. We just have to find a way to expose this server to the public.

          (外部のホスティングサービスにデプロイするなど)このコードを公開する方法はたくさんありますが、弊社ではngrok(エングロック)と呼ばれるツールの使用を推奨します。 ngrokを開始すると、このツールはngrok.ioドメイン上の一意なURLを提供し、受信リクエストをお使いのローカル開発環境に転送します。

          アーキテクチャーは下記のようになります:

          Twilioがローカルサーバーにアクセスできるようにするために、ngrokがどのように役に立つのか

          まだNgrokを使用していない場合はダウンロードページにアクセスし、お使いのオペレーティングシステム用の適切なバイナリーをダウンロードしてください。 ダウンロードが済んだらパッケージを展開します。

          MacまたはLinuxをお使いの場合は、以上で作業はおしまいです。 Windowsをお使いの場合は、Windows上でngrokをインストールおよび構成するガイドに従ってください。 いくつかの素晴らしいヒントや裏技を含むngrokの追加情報については、こちらの詳しいブログ投稿(英語)をご参照ください。

          ローカルサーバーをngrokで公開する

          ダウンロードが済んだら、先ほど作成したサーバーファイルを実行してみましょう:

          node server.js
          

          ローカルアプリケーション ローカルで実行してください。 そうしなければngrokが正常に動作しません。

          続いて新規のターミナルタブまたはウィンドウを開いて、下記のコマンドでngrokを実行します:

          ngrok http 1337
          

          ローカルサーバーが異なるポート番号で実行されている場合は、1337を正しいポート番号に置き換えてください。

          下記のような出力がご覧いただけるでしょう。

          ngrok-node-voice-1337port

          この出力から公開URLをコピーしブラウザーにペーストします。 Expressアプリケーションの「Hello from your pals at Twilio!」メッセージが表示されます。

          Twilio Webhookを構成する

          Now, you must take that public URL and configure this as a webhook for one of your phone numbers in the console. Go back to the console, select your phone number, change "A CALL COMES IN" to Webhook, and then put in the external URL to your service, such as "https://069a61b7.ngrok.io/", as shown above.

          where-to-put-ngrok-url-configure-number-nodejs-voice-qs

          「保存 (Save) 」をクリックしていることを確認して、ターミナルに戻ります。 ngrokがターミナルのタブでまだ実行されていることを確認し、別のタブでまだnode server.js が実行されていない場合はこれを実行します。

          Twilio電話番号に通話を発信しましょう。 数秒後にngrokコンソールでHTTPリクエストが確認でき、通話が接続されると短いメッセージが聞こえてきます。

          And there you go - you've successfully made and received a call with Node.js.

          It worked! What's next?

          関連トピック

          Now you know the basics of making and responding to phone calls with Node.js.

          This app only used the <Say> TwiML verb to read a message to the caller using text to speech. With different TwiML verbs, you can create other powerful constructs and call flows. Try a few, such as <Record>, <Gather>, and <Conference>.

          以下のページをご覧いただき、さらに理解を深めてください:

          皆さまが何を開発されるのか、目にするのが待ちきれません!

          ヘルプが必要ですか?

          We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

          Loading Code Sample...