2016-10-18 8 views
0

TwilioにHTTP POSTリクエストを行いたいが、呼び出し側のサービスでwebhook URLを入力することしかできない。Webhook URLからHTTP POST要求にブリッジする方法は?

私はapigeeのAPIプロキシでこれをブリッジしようとしていましたが、それを動作させる方法を理解できませんでした。

フローは次のようになります。 motion.aiのチャットボットは、特定のポイントでWebフックURLを呼び出します。 コールはtwilio.com経由でHTTP POST要求を必要とするアウトバウンドコールを行う必要があります(hereを参照)。

POSTリクエストは次のようになります。

$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/<...>/Calls.json \ 
    --data-urlencode "Url=http://demo.twilio.com/docs/voice.xml" \ 
    --data-urlencode "To=<...>" \ 
    --data-urlencode "From=<...>" \ 
    -u '<...>:<...>' 

これを埋めるための最も簡単な方法は何ですか?

+0

実際の流れを詳しく教えてください。 – am1704

+0

@ am1704確かに、追加された詳細をご覧ください。 – Manuel

+0

私はあなたがすでにそれを理解したのを見ます。乾杯 – am1704

答えて

0

私はApigeeでAPIプロキシをセットアップして、HTTP GETリクエストをHTTP POSTリクエストに変換することができました。

ApigeeにAPIプロキシを作成し、Basic Authenticationポリシーを追加します。そして、あなたは、単に https://<yourApigeeApiUrl>.apigee.net/<yourApiName>?username=<yourTwilioApiUsername>&password=<yourTwilioApiPassword>&...を呼び出すことで、TwilioにPOSTリクエストを行うことができます

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> 
    <DisplayName>ConvertQueryToFormParameters</DisplayName> 
    <Properties/> 
    <Copy source="request"> 
     <Headers/> 
     <QueryParams/> 
     <FormParams/> 
     <Payload/> 
     <Verb/> 
     <StatusCode/> 
     <ReasonPhrase/> 
     <Path/> 
    </Copy> 
    <Add/> 
    <Set> 
     <FormParams> 
      <FormParam name="To">{request.queryparam.To}</FormParam> 
      <FormParam name="From">{request.queryparam.From}</FormParam> 
      <FormParam name="Url">{request.queryparam.Url}</FormParam> 
     </FormParams> 
     <Verb>POST</Verb> 
    </Set> 
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 
</AssignMessage> 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<BasicAuthentication async="false" continueOnError="false" enabled="true" name="Basic-Authentication-1"> 
    <DisplayName>Basic Authentication-1</DisplayName> 
    <Operation>Encode</Operation> 
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> 
    <User ref="request.queryparam.username"/> 
    <Password ref="request.queryparam.password"/> 
    <AssignTo createNew="false">request.header.Authorization</AssignTo> 
    <Source>request.header.Authorization</Source> 
</BasicAuthentication> 

次はAssign Messageポリシーを追加

関連する問題