Register for SIGNAL by 8/31 for $250 off. Register now.

Twilio アプリケーションのデバッグ

Twilio 製品はお客様のソフトウェアに簡単に統合できますが、アプリケーションをビルドしてテストする際に、予想外の問題が発生する可能性があります。ここには多くの有用な Tips があります。

問題の切り分け

最初にすることは、問題を切り分けて単純な要素に分割することです。たとえば、REST API を使用して発信通話をかける場合、さまざまな処理が実行されます。

  • コードがヘルパーライブラリを使用して Twilio の REST API を呼び出します。
  • HTTP リクエストが認証され、パラメーターが検証されます。
  • 発信通話が発信されます。
  • 相手が応答したら、指定した webhook に HTTP リクエストが送信されます。
  • webhook から返された TwiML が解析され、実行されます。

どのステップでも、ネットワークの問題や無効な TwiML の実行などの問題が発生する可能性があります。可能な場合は、これらのステップをそれぞれ独立してテストすると、問題の切り分けに役立ちます。

webhook のデバッグ

お客様が設定した webhook で問題が発生する場合、さまざまな方法でその原因を突き止めることができます。

デバッガーの確認

最初に、デバッガーで調べます。webhook で問題が発生すると、Twilio はこの問題に関する情報をデバッガーに出力します。デバッガーは、それらのデバッグイベントに、エラーまたは警告のフラグを設定します。警告は、問題は発生したけれども、Twilio はリクエストの処理を続行できることを意味します。エラーは、重大度がさらに高く、Twilio がリクエストをまったく処理できなかったことを意味します。これらのデバッグイベントを確認する際、次の情報にアクセスします。

  • 発生したまさにそのエラーまたは警告
  • このエラーの考えられる原因
  • 提案された解決策
  • この webhook リクエストに関連付けられている HTTP リクエスト/レスポンスの全体

ブラウザでの webhook の実行

思い出して下さい、あなたはただのウェブアプリケーションを作っているのです。ブラウザの中でテストできないことはTwilioにはありません。このURLをブラウザで開いてきださい、エラーはありません。

  • Firefox は XML をとてもうまく扱えます。無効な XML の部分を目立たせます。
  • 手動で URL にデータを追加することにより、通過する Twilio のデータを模倣する。たとえば、Twilio に数字を渡すように指定して、そのアクションが http://www.myapp.com/handleDigits.php である場合、ブラウザで http://www.myapp.com/handleDigits.php?Digits=1 を参照することによって、ユーザーが 1 を押したときに何が起こるかを確認できます。
  • アプリケーションから常にデバッグが出力されていないことを確認して下さい。必ずといっていいほど問題を引き起こします。どのような出力でもXMLコメントブロックにラップできます、それらはHTMLのコメントブロックと同じようなものです。 <!-- COMMENTS HERE -->

HTTPリダイレクトをチェックする

Twilio は仕様通りの HTTP クライアントです。301 もしくは 302 リダイレクトを受け取った時に特定の URL に転送をします。しかしながら後発のリクエストでは本来のパラメーターは含まれません。時々「Digits」もしくは「RecordingUrl」があなたが予想していない位置に現れることがあります。このケースでは URL がリダイレクトを返していないことを確認してください。

例として、リクエストが上記のアクション URL に対して送信されるとき、Digits パラメーターが POST リクエストに含まれます。このアクション URL が別の URL にリダイレクトする場合、Twilio はリダイレクトに従って、GET リクエストを指定された URL に対して発行します。この GET リクエストには、Twilio のすべてのリクエストに含まれる標準の一連のパラメーターが含まれますが、Digits パラメーターは含まれません。

予期しないリダイレクトを返すことがありますが、これはよく起こる現象です。

  • すべてのHTTP要求をHTTPsにリダイレクトするサーバー
  • リクエスト URL をリライトして www を含めるか、または除外する、URL リライトルール www.

To see what your server is returning to Twilio, create a test request using cURL, Postman or your HTTP client of choice and inspect the response returned from your URL.

REST API の呼び出しのデバッグ

Twilio が webhook を呼び出す際のエラーと警告はデバッガーに出力されますが、REST API はエラーが発生すると、同期的にエラーオブジェクトをアプリケーションに返します。エラーオブジェクトには HTTP レスポンスのステータスコード、Twilio 固有のエラーコード、エラーメッセージ、およびエラーコードリファレンスへのリンクが含まれます。

{
  "code": 21211,
  "message": "The 'To' number 5551234567 is not a valid phone number.",
  "more_info": "https://www.twilio.com/docs/errors/21211",
  "status": 400
}

API Explorer による呼び出しのシミュレーション

REST API に関する問題のデバッグに最適なツールは、コンソールの API Explorer です。API Explorer は、REST API に対して実際に呼び出しを実行して、その出力を調べることが簡単にできる、ウェブベースのツールです。このツールを使用して、アプリケーションが実行する呼び出しをシミュレートして、その出力をアプリケーションからの出力と比較します。

ヘルプが必要ですか?

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