recordingStatusCallBack
メソッドを使用してtwilioのメソッドを使用してコール録音にアクセスしたいのですが、recordingStatusCallBack
私のaws apiゲートウェイと私のawsラムダでjsonを返すために私のAPIのゲートウェイ上のPOST要求を設定していませんでしたが、私はマシン上でnode.jsサーバーをセットアップし、ngrokを使ってトンネルして、 recordingStatusCallBack
属性は正常に動作します。なぜ私のaws apiのゲートウェイで動作しませんでしたか?Twilio - recordStatusCallBackは、提供されたときにjsonデータを返さず、aws apiゲートウェイリンクとnode.jsサーバーがローカルで動作している場合
0
A
答えて
0
私はapi-gatewayとtwilioで同じ問題がありました。あなたはのContent-Typeとしてを "アプリケーション/ x-www-form-urlencodedで" を追加し、あなたのテンプレートにこのコードを貼り付ける必要があり、APIゲートウェイでのごボディマッピング・テンプレートで
:
## convert HTML POST data or HTTP GET query string to JSON
## get the raw post data from the AWS built-in variable and give it a nicer name
#if ($context.httpMethod == "POST")
#set($rawAPIData = $input.path('$'))
#elseif ($context.httpMethod == "GET")
#set($rawAPIData = $input.params().querystring)
#set($rawAPIData = $rawAPIData.toString())
#set($rawAPIDataLength = $rawAPIData.length() - 1)
#set($rawAPIData = $rawAPIData.substring(1, $rawAPIDataLength))
#set($rawAPIData = $rawAPIData.replace(", ", "&"))
#else
#set($rawAPIData = "")
#end
## first we get the number of "&" in the string, this tells us if there is more than one key value pair
#set($countAmpersands = $rawAPIData.length() - $rawAPIData.replace("&", "").length())
## if there are no "&" at all then we have only one key value pair.
## we append an ampersand to the string so that we can tokenise it the same way as multiple kv pairs.
## the "empty" kv pair to the right of the ampersand will be ignored anyway.
#if ($countAmpersands == 0)
#set($rawPostData = $rawAPIData + "&")
#end
## now we tokenise using the ampersand(s)
#set($tokenisedAmpersand = $rawAPIData.split("&"))
## we set up a variable to hold the valid key value pairs
#set($tokenisedEquals = [])
## now we set up a loop to find the valid key value pairs, which must contain only one "="
#foreach($kvPair in $tokenisedAmpersand)
#set($countEquals = $kvPair.length() - $kvPair.replace("=", "").length())
#if ($countEquals == 1)
#set($kvTokenised = $kvPair.split("="))
#if ($kvTokenised[0].length() > 0)
## we found a valid key value pair. add it to the list.
#set($devNull = $tokenisedEquals.add($kvPair))
#end
#end
#end
## next we set up our loop inside the output structure "{" and "}"
{
#foreach($kvPair in $tokenisedEquals)
## finally we output the JSON for this pair and append a comma if this isn't the last pair
#set($kvTokenised = $kvPair.split("="))
"$util.urlDecode($kvTokenised[0])" : #if($kvTokenised.size() > 1 && $kvTokenised[1].length() > 0)"$util.urlDecode($kvTokenised[1])"#{else}""#end#if($foreach.hasNext),#end
#end
}
関連する問題
- 1. Node.jsがAPIから返されたJSONを返さない
- 2. jsonデータのログにnodejsとmongooseが返されない場合
- 3. ASP.Net MVC:ユーザーロールが提供されたロールと照合している場所
- 4. Indesignサーバー - データと提供されたテンプレートに基づいてindesignファイルを生成
- 5. ラウンドロビンディレクターでクッキー/セッションが提供されている場合のワニスキャッシュ
- 6. WebアプリケーションがVM内で提供されている場合(Angular2CLI)
- 7. ページキャッシュを無効にしても、リソースはキャッシュされません。私は、ファイルがローカルで提供される場合にのみ動作を学んだまで
- 8. JSONデータを提供するC++/Qt(サーバーとして動作する)でシンプルなWebServiceを作成
- 9. node.jsサーバーで受信されたPOSTデータは、クライアントに未定義として返されました。
- 10. 提供されるデータのpythonからカスタムJSONを作る
- 11. 動的に作成されたデータを持つREST APIとしてのGremlinサーバー
- 12. 文がダウンロードされたデータで動作しない場合
- 13. データ型が提供されたものと異なる場合、PDO :: bindParam/bindValueは例外をスローしますか?
- 14. AWS実行コマンドがサーバー上でローカルで実行されているものと異なる動作
- 15. Jdbcクラスにデータソースが提供されている場合は閉じる
- 16. このエラーは「デフォルトエンジンが指定されておらず、拡張機能が提供されていません」と表示されています。データをデータベースに送信しようとしたときにnode.jsにある
- 17. モーダルウィンドウ上でHTMLエコーとして提供されるデータで、PDFには表示されないデータ
- 18. FileProviderがドロワーブルを提供する方法を教えてください。それからファイルを提供することができる場所として
- 19. 無効なappsecret_proofがPythonサーバーのAPI引数で提供されました
- 20. Laravel - コレクションがJSONとして返されたときにアクセサが動作しない
- 21. CloudFlareはHTTPSだけを提供することはできません。HTTPSと一緒にHTTPを提供する場合にのみ動作します。
- 22. json-fileのRegexが応答本体として提供されています
- 23. TyphoonAssemblyが@Propertyとして提供されているオブジェクト
- 24. シードが提供されていないときに播種されるクラスRandomとは何ですか?
- 25. Androidの場所api:提供されたAPIキーが無効です
- 26. Instagram API提供されているaccess_tokenが無効です
- 27. 同じコンテンツが同じブラウザにロードされている場合、iexplorer.exeのローカルとリモートで動作が異なる
- 28. 提供者の値が表示されない場合
- 29. jqGrid - JSONとして返されたデータですが、表示されません。
- 30. マーシャリング時のデータがJSONにマップされている場合
試したコードを共有してください(エラーmsg、..)。理解しやすいように –
@Nandhaそのコードではなく、単にrecordingStatusCallBackがjsonを返し、私のAPIゲートウェイでそのデータをlambdaに転送し、lambdaはtwilioのメソッドrecordingStatusCallBackによって送信されたjsonからなる完全な "イベント"オブジェクトを返します。私は誰もがそれを実装した場合にしたいですか? –
ここで何が起こっているのか完全には分かっていませんが、Twilioは 'application/json'リクエストを送信しません。すべてのTwilioリクエストは 'application/x-www-form-urlencoded'として行われます。おそらく、フォームエンコードされたPOSTリクエストを受け取るためにAPIゲートウェイを微調整する必要がありますか? – philnash