Ngrokを使ったテスト
ユーザがVonage番号に電話をかけるなどしてVonageとやりとりする場合、Vonageはアプリケーションに通知し、必要なアクションを実行できるようにする必要があります。音声アプリケーションの場合、Vonageが通話に応答したときに、発信者に音声合成メッセージを再生することができます。Vonageはまた、発信者が電話を切ったときなど、通話中に発生するさまざまなイベントをアプリケーションに通知し続けることもできます。Vonageからのこれらの通知は ウェブフック.
問題は、開発マシンでローカルにアプリケーションをテストしているとき、あなたのコンピューターは公衆インターネット上にないため、これらのウェブフック通知を受信できないことです。
この問題を回避する一つの方法は、次のような無料のツールを使うことである。 ングロク.Ngrok は、インターネットとローカルで実行中のアプリケーションを接続する安全なトンネルを作成します。Vonageからの通知は、Ngrokを経由してローカル・マシンに送られます。
Ngrokを使い始めるには、以下の手順に従ってください:
を使用してNgrokをダウンロードし、インストールする。 指示 あなたのプラットフォームのために。
アプリケーションをローカルで起動し、どのポートを使用しているか確認してください。例えば、通常
http://localhost:3000アプリケーションにアクセスするためのポートは3000である。次のようなコマンドで、このポートにNgrokトンネルを作成する。
ngrok http 3000.以下のようなものが表示されます:
このコマンドはトンネルのURLを表示する。
https://abcdef1.ngrok.io.このURLをコピーしてください。Vonage API ウェブフックの設定 このURLを指すようにする。
Ngrok トンネルを起動するたびに新しい URL を受け取るので、それに応じて webhooks 設定を更新することを忘れないでください!
IIS Expressでの使用
IIS Expressは、ホストヘッダが次のように一致しない場合、Ngrokからのインバウンドリクエストを拒否します。 bindingInformation パターンを設定する必要があります。そのため、ヘッダー内のホスト名を IIS Express の設定に合わせて変更するように Ngrok を設定する必要があります。
これは、Ngrokの host-header オプションで指定します。次のコマンドは、ポート3000に対してこれを実行する方法を示している:
テストのためにこのようなことをしていて、何かのためにオリジナルのホストが必要な場合は、そのホストを X-Original-Host ヘッダーを使用する。
IIS Expressを正しいポートに設定する
IIS Expressがポート3000、またはNgrokを設定することにしたポートでリッスンしていることを確認する。 properties/launchSettings.json のポート番号を確認してください。 iisExpress オブジェクトの applicationUrl フィールドは、Ngrok に転送するように設定したポートと一致します。を設定して、IIS Express で SSL を無効にする必要があります。 sslPort への 0.以下のIIS Expressの有効な設定を参照してください。 launchSettings.json:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:3000/",
"sslPort": 0
}
}
ングロク・プラン
有料 Ngrok プランでは、トンネル名を予約し、起動時に使用するトンネル名を選択できるため、Webhook を再設定する手間を省くことができます。有料 Ngrok アカウントをお持ちの場合は、次のようなコマンドを使用して独自ドメインで開始できます:
この場合、以下のようになる:
これには、Ngrokを起動するたびにWebhookを再設定する必要がないという利点があります。
ングロック・ウェブ・インターフェース
コマンド出力に表示されるトンネルのURLに加えて、「ウェブ・インターフェイス」のURLも表示されます(http://127.0.0.1:4040).ウェブインターフェイスでは、トンネルが受け取ったすべてのリクエストと返されたレスポンスの詳細を調べることができます。これは非常に便利なデバッグツールです。
ウェブインターフェイスでは、"Replay "ボタンを使ってリクエストを繰り返すこともできます。これらの機能は、Webhookに対するアプリケーションの応答をテストすることをより便利にします。