SMS/ボイスアプリの動作確認にTwilio Dev Phoneを利用する

June 15, 2022
執筆者
レビュー担当者

Test SMS and Phone Call apps with the Twilio Dev Phone JP

この記事はNeils Swimbergheこちらで公開した記事(英語)を日本語化したものです。

Twilioを利用することで、電話番号、テキストメッセージ、音声通話をベースとするアプリケーション構築が可能となります。電話ネットワークがベースとなるこれらアプリケーションは、もちろん携帯電話やスマホを使ってテストすることができますが、手元に電話がない状況でこれらアプリケーションをテストすることができるでしょうか。なぜ電話を使わないのかと思われるかもしれませんが、背景的な部分は後ほど説明するとして、まずは可能なことを解説していきます。

Twilio Dev Phoneのご紹介

Twilio Dev Phone(トゥイリオ・デブ・フォン)とは

Twilio Dev Phoneは、Twilio製品の上に構築されたツールで、ブラウザから電話やテキストメッセージを送受信(発着信)することが可能です。Dev PhoneはGitHub上のオープンソースプロジェクトとして構築されているので、ソースコードを読んで自由にコントリビュート(貢献)することができます。Twilio Dev Phoneの詳細については、ドキュメントでご確認ください。

Twilio Dev Phoneを使用する理由

ご自身の電話端末の代わりにTwilio Dev Phoneを使う典型的なシナリオを、以下にいくつか紹介します。

🌍 国際的なアプリケーション

ユーザーが世界中に広がるアプリケーションを構築する場合、それぞれの国のTwilio電話番号を取得することになります。しかしほとんどの場合、これら各国のTwilio電話番号への通信に係る国際料金が、個人の電話機に課金されることを望んでないはずです。そこで対象国のTwilio Phone Numberをもう1つ購入し、Twilio Dev Phoneを使って電話やSMSの送受信をすることができます。

場合によっては、SMSのAlpha Numeric Senders(英数字送信元ID)機能を動作検証するためにTwilio Dev Phoneを使用することも可能です。英数字送信元ID機能が他国では利用できるものの、あなたの国では利用できない状況で、Twilio Dev Phoneを重宝するはずです。

📶 接続が悪い

住んでいる場所や働いている場所によっては、4G/5Gといった接続が不安定であったり、まったく利用できないことがあります。職場が高度なセキュリティで守られていて、通信がコントロールされているのかもしれませんし、携帯電話を紛失したばかりかもしれません。

このような場合、電話を使うことができないかもしれませんが、インターネット接続があれば、Twilio Dev Phoneを使うことができます。

🚤 速くて便利

コンピュータでアプリケーションを構築する場合、電話を見つけ、ロックを解除し、いけてないUIに電話番号を入力し、最後にその電話やSMSを送受信する必要があります。

このフローは、ときに面倒になります。その代わりに、Twilio Dev Phoneをブラウザのタブの1つに置いておきアプリケーションをテストすることで、ブラウザ内で作業が閉じますので円滑な開発エクスペリエンスとなります。

Dev Phoneが役立つシナリオはまだまだあります。どんなことに使っているか、ぜひ教えてください。

Twilio Dev Phoneを使用したTwilioアプリケーションのテスト方法

Twilio SMS / Voiceアプリケーションのプロビジョニング

Dev PhoneでTwilioアプリケーションをテストする前に、Twilioアプリケーションを立ち上げておく必要があります。

すでにお持ちの場合は、このセクションはスキップできます。

また、独自のTwilioアプリを導入する代わりに、私たちがデモ用に用意したこの電話番号「+19032962250」にSMSを送信すること、あるいは電話をかけることも可能です。ただし、TwilioのトライアルアカウントではVerified Caller ID(検証済みの発信者番号)としか通信できないため、アップグレードしたTwilioアカウントからしか、この電話番号にアクセスできません。

Twilio CodeExchangeにはたくさんのサンプルアプリケーションがありますが、Twilioアプリを手軽にデプロイするには「Voice Auto-response」や「SMS Auto-response」サンプルのように、「Quick Deploy」のタグが付いたサンプルに絞り込むとよいでしょう。

まず、TwilioのアカウントとTwilioの電話番号があることを確認します。Twilioアカウントをまだお持ちでない方は、こちらでサインアップして開設してください。またTwilio電話番号をまだお持ちでない方は、こちらの手順で購入してください。

(日本語編集上の補足: 日本国内の電話番号を購入する場合には規制情報の提出・承認の処理が必要になり工程が多めとなりますので、ここでは米国の電話番号を購入するための手順として記事をお読みください。国内の電話番号取得の手順については、こちらの記事が参考になります。)

次に、ブラウザの新しいタブで「Voice Auto-response」サンプルを開き、Twilio電話番号を選択し、アプリケーションをデプロイ(配備展開)してください。次に、「SMS Auto-response」サンプルについても同じ手順を踏んでください。

これで2つのTwilioアプリケーションができました。1つはTwilio電話番号に電話すると応答するアプリ、もう1つはTwilio電話番号にSMSを送ると応答するアプリです 🎉

Twilio Dev Phoneのインストール

Twilio Dev Phoneを使用する前に、Twilioの別の電話番号を取得し、Twilio CLIをインストールし、Twilio Dev Phoneプラグインをインストールする必要があります。

Twilioのトライアルアカウントで2つの電話番号を別々に購入することはできないので、トライアルアカウントを使用している場合は、アカウントをアップグレードする必要があります。

Twilio Phone Numberをもう1つ購入し、Dev Phoneで通話やテキストメッセージの送受信に使用します。(Dev Phone自身に関連付けられる番号)

次に、お使いのマシンにTwilio CLIをインストールします。こちらに記載の手順(英語)に従ってください。

その上で、以下のコマンドを使用してアカウントにログインします。

twilio login

最後に、Twilio Dev Phoneプラグインを以下のコマンドでインストールします。

twilio plugins:install @twilio-labs/plugin-dev-phone

これで、Twilio Dev Phoneを使用する準備が整いました。次のコマンドでDev Phoneを起動します。

twilio dev-phone

ブラウザの新しいタブが開き、Dev Phoneが表示され、ターミナルの出力は以下のようになるはずです。

Hello 👋 I'm your dev-phone and my name is dev-phone-600487

✅ I'm using your profile API key.

💻 Creating a new conversation...
✅ I'm using the conversation CHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx from service ISxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

💻 Creating a new sync list for call history...
✅ I'm using the sync service ISxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

💻 Deploying a Functions Service to handle incoming calls and SMS...
✅ I'm using the Serverless Service ZSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

💻 Creating a new TwiML App to allow voice calls from your browser...
✅ I'm using the TwiML App APxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

🚀 Your local webserver is listening on port 3001
🌐 Opening http://localhost:3001/ your browser
▶️  Use ctrl-c to stop your dev-phone

ご覧の通り、Twilio Dev PhoneはConversationsSyncFunctionsTwiMLアプリなど多くのTwilioサービスを使っており、これらを基にしてブラウザからリアルタイムに電話の発着信やSMSの送受信が可能となるのです。

これらのサービスはすべて、Twilio Dev Phoneを起動したときに作成されます。またTwilio Dev Phoneを「ctrl + c」により正常停止すると、Twilio Dev Phoneがこれらのサービスを自動的にクリーンアップします。

Dev Phoneが起動したところで、Dev Phoneのブラウザタブに移動してください。

devphoneinitjp

Twilio電話番号を選択し、「Use this phone number」(この電話番号を使用する)をクリックします。

電話番号が、Webhook、Function、Flow、TwiMLアプリなどを使って電話やSMSメッセージに応答するようにすでに設定されている場合は、設定を上書きしてしまってもよいかの警告が表示されます。Twilio Dev Phoneは、その電話番号で処理を行う場合、これらの設定を上書きしますので、注意してください。

これで、あなたのコンピュータ上にソフトフォンが起動されました🎉

devphonecallingjp

Twilio Dev Phoneを使用してアウトバウンド架電やSMS送信を行う

画面右上の [Destination Number] フィールドにテスト対象のアプリケーションの電話番号を入力し、テストを開始します。

次に、[Message] フィールドにメッセージを入力し、[Send] ボタンをクリックします。アプリケーションは、受信SMSに対して設定された応答で応答します(例: このスクリーンショットでは「Hello World」)。

最後に、アプリケーションの音声通話機能をテストするために、[Call] ボタンをクリックします。設定した応答も聞こえるはずです(例: 「Hello World」)。

SMSメッセージと音声通話の機能をテストしました。その逆方向の通信となりますが、Dev Phoneは着信通話に応答、あるいはメッセージを受信することができることも忘れないでください。Dev Phoneに関連付けられた電話番号に電話をかけるか、アプリケーションからSMSメッセージを送信してください。この番号は、画面右上に表示されています。

次のステップ

Twilio Dev Phoneをセットアップして、Twilioアプリケーションの動作確認に使用する方法について学びました。前述のとおり、Twilio Dev Phoneは GitHub 上のオープンソースプロジェクトですので、ソースコードをレビューし、必要に応じてissueの報告やプルリクエストの作成を行ってください。

Twilio Dev Phoneが皆さんの開発工程の役に立つことを願っています。コミュニケーションの未来を創造しましょう。

Niels Swimbergheはベルギー系アメリカ人のソフトウェアエンジニアで、Twilioのテクニカルコンテンツクリエイターです。Twitter @RealSwimburger でNielsと連絡を取り、swimburger.net で .NET, Azure, Web開発に関するNielsの個人ブログをフォローしてください。