Twilio による SMS サービスおよび音声サービスの使用

Twilio は今後のビジネス コミュニケーションの要となる企業であり、デベロッパーが音声、VoIP、メッセージをアプリケーションに組み込むためのメカニズムを提供しています。また、クラウドベースのグローバル環境に必要なすべてのインフラストラクチャを仮想化し、Twilio 通信 API プラットフォーム経由で公開しています。アプリケーションはビルドが簡単で、拡張可能です。従量課金制であるため柔軟性に富み、クラウドは信頼性が高いことから安心して使用できます。

Twilio Voice を使用すると、アプリケーションで電話をかけたり受けたりできます。Twilio SMS を使用すると、アプリケーションでテキスト メッセージを送受信できます。Twilio Client を使用すると、あらゆる電話、タブレット、ブラウザから IP 電話を発信できます。WebRTC がサポートされています。

料金

Google App Engine 利用者はアップグレードすると、SMS メッセージまたは着信に使用できる無料クレジットが付与されます。

Twilio は従量課金制のサービスです。アカウントの開設料金は発生せず、アカウントはいつでも閉鎖できます。詳細については、Twilio 料金をご覧ください。

プラットフォーム

Twilio プラットフォームは、Twilio マークアップ言語(TwiML)、RESTful API、VoIP SDK(ウェブブラウザ、Android、iOS 用)で構成されています。ヘルパー ライブラリは複数の言語で利用できます。完全なリストについては、Twilio ヘルパー ライブラリをご覧ください。

TwiML

TwiML は、着信通話または SMS を受信したときに何をすべきかを Twilio に指定するために使用できる一連の指示です。他者から自分のいずれかの Twilio 番号に着信があったり SMS が送信されてきたりすると、Twilio はその電話番号に関連付けられている URL を検索し、その URL にリクエストを行います。URL の TwiML 指示を読み取って、以下のどの処理を実行すべきかを判別します。

  • <Say> - テキストを音声に変換する
  • <Record> - 通話を録音する
  • <Play> - 発信者向けのメッセージを再生する
  • <Gather> - 発信者にキーパッドの数字を押すように指示する
  • <Message> - メッセージを送信する

その他の動詞や機能については、Twilio マークアップ言語のドキュメントをご覧ください。

REST API

Twilio REST API を使用すると、自分のアカウント、電話番号、通話、テキスト メッセージ、録音に関するメタデータをクエリできます。また、通話を発信したり、テキスト メッセージを送信したりすることもできます。

API は REST の原則に基づいているため、アプリケーションの作成とテストは非常に簡単です。ブラウザを使用して URL にアクセスし、あらゆるプログラミング言語のほぼすべての HTTP クライアントを使用して API と対話できます。詳細については、Twilio REST API をご覧ください。

サンプルコードのコピー

Twilio との統合を示す完全なコードサンプルは、GitHub から入手できます。このサンプルコードを使用する場合は、ローカルマシンにコピーしてください。

git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/twilio

セットアップ

以下の手順で、Twilio を使用して着信通話を受信、SMS を送信、または SMS を受信します。

  1. プロジェクトを作成します。詳細は、App Engine 上の Node.js に関する「Hello, World!」をご覧ください。

  2. Twilio アカウントを作成します。

  3. Twilio で番号を作成します。自分の Twilio 番号のアプリ用 URL を必要に応じて設定します。たとえば、サンプルコード用であれば、以下のようになります。

    • 音声リクエスト URL の設定: https://[your-app-id].appspot.com/call/receive
    • SMS リクエスト URL の構成: https://[your-app-id].appspot.com/sms/receive
  4. app.standard.yaml の環境変数セクションで Twilio の設定を構成します。次に例を示します。

    # The following env variables may contain sensitive information that grants
    # anyone access to your Twilio account. Do not add this file to your source
    # control.
    env_variables:
      TWILIO_ACCOUNT_SID: <your-account-sid>
      TWILIO_AUTH_TOKEN: <your-auth-token>
      TWILIO_NUMBER: <your-twilio-number>

  5. Twilio をアプリケーションの package.json にライブラリの依存関係として追加します。次に例を示します。

    npm install --save twilio
    

    App Engine では必ず、package.json に宣言されているすべての依存関係が、アプリケーションをデプロイするときにインストールされます。

  6. アプリのローカルテストの準備をするため、コマンドラインでローカルマシンの環境変数を設定します。たとえば、サンプルコードでは次のものを使用できます。

    export TWILIO_ACCOUNT_SID=[your-twilio-account-sid]
    export TWILIO_AUTH_TOKEN=[your-twilio-auth-token]
    export TWILIO_NUMBER=[your-twilio-number]
    
  7. アプリケーションをローカルで実行して、コールバックと SMS 送信をテストできます。次に例を示します。

    npm start
    

着信通話の受信

設定を完了したら、最初のアプリケーションを作成します。

app.js/call/receive ハンドラは、着信に応答し、TwiML の指示を返す方法を示しています。

app.post('/call/receive', (req, res) => {
  const resp = new TwimlResponse();
  resp.say('Hello from Google App Engine.');

  res.status(200)
    .contentType('text/xml')
    .send(resp.toString());
});
  1. プロジェクトを App Engine にデプロイします。プロジェクトをデプロイしたら、POST リクエストを http://your-app-id.appspot.com/call/receive に送信します。これにより、以下のテキストが返されます。

    <?xml version="1.0" encoding="UTF-8"?>
      <Response>
        <Say>Hello from Twilio!</Say>
      </Response>
    
  2. http://your-app-id.appspot.com/call/receive URL をコピーして、Twilio アカウントの [番号(Numbers)] ページの [音声 URL(Voice URL)] ボックスに貼り付けます。

  3. 自分の Twilio 番号を入力して発信します。応答で「Hello from Twilio!」という音声が聞こえるはずです。発信すると、Twilio があなたの URL をフェッチして、上記の XML 指示を実行し、指示がなくなったら通話を切断します。

SMS の送信

Twilio を使用して発信 SMS を送信するには、twilio-node ヘルパー ライブラリを使用します。

app.js/sms/send ハンドラは SMS の送信方法を示しています。

app.get('/sms/send', (req, res, next) => {
  const to = req.query.to;
  if (!to) {
    res.status(400).send('Please provide an number in the "to" query string parameter.');
    return;
  }

  twilio.sendMessage({
    to: to,
    from: TWILIO_NUMBER,
    body: 'Hello from Google App Engine'
  }, (err) => {
    if (err) {
      next(err);
      return;
    }
    res.status(200).send('Message sent.');
  });
});
  1. 実際の電話番号を使用するように to パラメータを変更します。to の番号は携帯電話番号などの任意の発信番号に設定できます。

  2. 更新されたコードをデプロイし、URL http://your-app-id.appspot.com/sms/send をウェブブラウザに入力して SMS を送信します。

SMS の受信

Twilio を使用して着信 SMS を受信するには、twilio-node ヘルパー ライブラリを使用します。

app.js/sms/receive ハンドラは、着信 SMS に応答して TwiML の指示を返す方法を示しています。

app.post('/sms/receive', bodyParser, (req, res) => {
  const sender = req.body.From;
  const body = req.body.Body;

  const resp = new TwimlResponse();
  resp.message(format('Hello, %s, you said: %s', sender, body));

  res.status(200)
    .contentType('text/xml')
    .send(resp.toString());
});

更新されたコードを App Engine にデプロイし、SMS を自分の Twilio 番号に送信します。応答でグリーティングが届きます。

Twilio のその他の詳細

いくつかの基本事項を学習しました。また、セキュアでスケーラブルなアプリケーションを構築するためのその他の大切な点や推奨される方法をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Node.js 用 App Engine スタンダード環境に関するドキュメント