You are viewing the Japanese site, but your language preference is set to English. Switch to English site →

Menu

Expand
このページを評価:

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

必要なものはコード数行のみ。Twilio Programmable Voiceを使用し、Node.jsアプリケーションから通話の発着信を行うことができます。

このNode.jsクイックスタートでは、REST APITwilio Node.jsヘルパーライブラリーを使用し、簡単に発着信を行う方法を説明します。

このクイックスタートでは、以下について説明します。

  1. Twilioにサインアップし、音声対応のTwilioの電話番号を初めて取得する
  2. 開発環境を設定し、通話の発着信を行う
  3. MP3を再生する通話を発信する
  4. 通話の着信・応答時に、Text to Speechを使用し発信側に対しメッセージを読み上げる

ビデオもご用意しています。Node.jsにより通話の発着信を行う方法(YouTube)をご覧ください。

どうなるか確認しましょう

Twilioにサインアップし電話番号を取得する

Twilioアカウント、音声対応のTwilio電話番号をすでにお持ちの場合は、ログインし、次のステップに進んでください

Node.jsから電話をかける前に、Twilioアカウントにサインアップするか、すでにお持ちのアカウントにログインしてください。

次に、音声対応のTwilioの電話番号を用意します。音声通話機能付きのTwilio電話番号をお持ちではない場合は、ご購入いただく必要があります。 [Buy a Number](番号を購入する)ページに移動し、[Voice]ボックスをチェックし、[Search](検索)をクリックします。

Search for voice capable numbers

使用可能な電話番号とその機能のリストが表示されます。好みの番号を探し、[Buy](購入)をクリックし、アカウントに追加します。

これでTwilioアカウントとプログラム可能な電話番号が揃い、通話に必要な基本ツールが準備できました(日本の場合、Regulatory Bundleが必須です)。

TwilioのHTTP APIを使用し、電話をかけることもできますが、Node.js用のTwilioモジュールを使用することにより、作業がさらに簡単になります。すぐにインストールしましょう。

セットアップの手順を確認します。

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

Node.jsのクイックスタートのいずれかをすでに終えており、Node.jsとTwilio Node.jsモジュールがインストールされている場合には、このステップを省略し、最初の通話に進むことができます

ターミナルを開き、以下のコマンドを実行すると、マシンにNode.jsがすでにインストールされているかを確認できます。

$ node --version

次のように表示されます。

$ node --version
v8.9.1

バージョン2.11以前をご使用の場合には、最新バージョンにアップグレードすることをお勧めします。

まだNode.jsをインストールしていない場合には、ターミナルのコマンドラインに以下を入力することにより、homebrewまたはその他のパッケージマネージャーを使用しインストールできます。

brew install node

Windowsマシンをご使用の場合には、nvm-windowsをインストールし、Node.jsとnpm(Node.jsパッケージマネージャー)の両方をインストールします。Windowsユーザーはこちらのチュートリアルをご覧ください。

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

ライブラリーをインストールする最も簡単な方法は、npm(Node.jsパッケージマネージャー)を使用することです。必要なライブラリーを選びインストールできます。Nodeとnpmをインストール済みのマシンで、ターミナルかコマンドラインインターフェイスを起動し、新しいディレクトリで以下のコマンドを実行します。

npm install twilio
完了です。電話をかけてみましょう

Node.jsを使用し通話を発信する

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

1回のAPIリクエストにより、購入したばかりのTwilioの電話番号から発信できます。「make_call.js」という新しいファイルを開き、以下のコードを入力するか、貼り付けます。

        
        
        

        このコードにより、引数として渡される2つの電話番号の間で音声通話が開始されます。「from」番号はTwilioの番号であり、「to」番号は通話相手の番号です。

        URL引数はTwiMLを指します。TwiMLは、受信者が応答した際の処理をTwilioに通知します。このTwiMLは、Text To Speech機能を通じてメッセージを読み込み、次にMP3を再生するようにTwilioに指示します。

        このコードを機能させる前に、自分のTwilioアカウントで動作するように少し編集する必要があります。

        プレースホルダの認証情報値を置き換える

        accountSidauthTokenのプレースホルダ値を、ご自身のTwilio認証情報に置き換えます。

        https://www.twilio.com/consoleに移動し、ログインします。このページでは、お客様固有のAccount SIDとAuth Tokenを確認できます。この作業は、今回のようにTwilio Clientによりメッセージを送信する際に必要となります。「目」のアイコンをクリックすると、Auth Tokenが表示されます。

        make_call.jsを開き、accountSidauthTokenの値をご自身固有の値に置き換えます。

        注意: 最初は認証情報を直接コードに埋め込んでも問題ありませんが、本番環境にデプロイするまでには、必ず環境変数を使用し、認証情報を保護してください。詳細については、環境変数の設定方法をご覧ください。

        tofromの電話番号を置き換える

        数分前に購入した音声対応の電話番号を覚えていますか。入力されているfromの番号を、その番号に置き換えます。必ずE.164形式を使用してください。

        [+][国コード][エリアコードを含む電話番号]

        次に、toの電話番号をご自身の携帯電話番号に置き換えます。この番号は、通話を受信できる電話番号であればどの番号でも構いませんが、プロセスを実際に体験するために、ご自身の番号を使用することをお勧めします。上記のように、この値にはE.164形式を使用します。

        変更内容を保存し、ターミナルから以下のコマンドを入力しコードを実行させます。

        node make_call.js

        これで完了です。Twilioの番号から電話がかかり、携帯電話が鳴ります。応答すると短いメッセージが聞こえます。😉

        Twilioのトライアルアカウントを使用している場合、Twilioにより確認された番号のみに通話を発信できます。電話番号は、Twilio Consoleの認証済み発信者IDにより認証できます。その他のトライアルアカウントの制限については、無料のTwilioトライアルアカウントでの作業方法に関するガイドをご覧ください。

        次に、Twilioの電話番号への着信通話に応答する方法を学びます。まず、Expressサーバーを設定し、起動します。

        では始めましょう。

        Node.jsとExpressを使用し、音声通話を受けて応答する

        お使いのTwilio番号が通話を受けると、お使いのサーバーにHTTPリクエストが送信されます。このコールバックメカニズムは、Webhookと呼ばれています。 Twilioがアプリケーションにリクエストを送信すると、Twilioは、電話への応答方法を説明する応答をTwiML XML形式で受け付けます。

        着信通話を処理するには、Twilioからの受信HTTPリクエストを受け付ける軽量のWebアプリケーションが必要です。アプリケーションから電話を発着信するためのWebフレームワークは、いくつ使用してもかまいませんが、このクイックスタートではNode.jsとExpressフレームワークを使用します。

        コマンドラインで以下を実行します。

        npm install express --save
        

        次に「server.js」というファイルを作成し、以下のコードにより受信メッセージを処理できるサーバーを作成します。

              
              
              

              以下のコマンドを使用し、サーバーを実行します。

              node server.js

              http://127.0.0.1:1337/のローカルポートを開くと、ポート1337で実行されているサーバーが、着信通話に対して読み上げるメッセージを含むXMLをブラウザーに返すのが分かります。

              次に、このエンドポイントをTwilioに公開します。

              Twilioにアプリケーションと通信させるには?

              Twilioにアプリケーションと通信させる

              Twilioに着信通話への対応方法を指示する前に、サーバーを外部のネットワークに公開する必要があります。ローカルの開発サーバーは、多くの場合、ローカルネットワークからしかアクセスできません。しかし心配は不要です。サーバーをテストする簡単な方法をご紹介します。

              多くのTwilio製品とサービスは、Webhookを使用することによりアプリケーションとやり取りします。たとえば、Twilioが着信通話を受信する際、Twilioは提供された特定のURLにアクセスし、応答の処理方法の手順を探します。

              server.jsにある小さなコードは、発信者への「応答」に使用する手順の例です。このサーバーを外部のネットワークに公開する必要があります。

              このコードを公開する方法は多数ありますが(コードをホストにデプロイするなど)、Twilioではngrokというツールの使用をお勧めします。ngrokを開始すると、ngrok.ioドメインの一意のURLが提供され、受信リクエストがローカルの開発環境に転送されます。

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

              How ngrok helps Twilio reach your local server

              まだ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を設定する

              次にコンソールを使用し、その公開URLを、電話番号の1つのWebhookとして設定する必要があります。コンソールに戻り、電話番号を選択し、以下に示すように[A CALL COMES IN](着信)を「Webhook」に変更し、次に「https://069a61b7.ngrok.io/」など、サービスへの外部URLを入力します。

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

              [save](保存)を忘れずにクリックし、ターミナルに戻ります。1つのタブにおいてngrokが実行中のまま、別のタブにおいてnode server.js を実行します(まだ実行していない場合)。

              ご自分のTwilio電話番号に通話を発信します。数秒以内に、ngrokコンソールにHTTPリクエストが表示され、電話が繋がると短いメッセージが聞こえます。

              これで完了です。Node.jsを使用した通話の発着信に成功しました。

              うまくいきました!次のステップ

              次のステップ

              Node.jsを使用した通話の発着信の基本が理解できました。

              このアプリでは、TwiML動詞<Say>のみを使用し、音声合成機能により発信者に向けてメッセージを読み上げました。別のTwiML動詞を使用すると、他のパワフルな構成や通話フローを作成できます。<Record><Gather><Conference>など、いくつか試してみてください。

              詳細については、以下のページをご覧ください。

              コミュニケーションの未来を構築。

              このページを評価:

              サポートが必要ですか?

              コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。

                    
                    
                    

                    フィードバックいただき、ありがとうございました。

                    フィードバックいただいた理由を選択してください。その他、ご意見をいただければ、今後のドキュメントの改善に役立てさせていただきます。

                    フィードバックを送信中...
                    🎉 フィードバックいただき、ありがとうございました。
                    何らかの問題が発生しました。もう一度試してください。

                    フィードバックいただき、ありがとうございました。

                    Twilioを紹介して$10ゲットしてください。次の3ステップです。

                    ステップ1

                    リンクの取得

                    無料の個人用紹介リンクをこちらから取得してください

                    ステップ2

                    $10受け取るには

                    あなたの顧客がサインアップし、リンクからアップグレードすると、プレゼントします

                    ステップ3

                    $10ゲット

                    1,250通の無料SMS
                    または、1,000分の無料音声通話
                    または、12,000チャット
                    そのほか