簡體   English   中英

如何從Webhook URL橋接到HTTP POST請求?

[英]How to bridge from a webhook URL to a HTTP POST request?

我想向Twilio發出HTTP POST請求,但呼叫服務僅允許我輸入Webhook URL。

我試圖將其與apigee的API代理進行橋接,但是我不知道如何使它起作用。

流程是這樣的:motion.ai上的聊天機器人在某個點調用了Web掛鈎URL。 該呼叫應通過twilio.com進行出站呼叫,這需要HTTP POST請求,請參見此處

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 '<...>:<...>'

架起橋梁的最簡單方法是什么?

我設法通過Apigee設置了一個API代理,以將HTTP GET請求轉換為HTTP POST請求。

Apigee中創建API代理並添加Basic Authentication策略:

<?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策略:

<?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>

然后您可以通過簡單地調用https://<yourApigeeApiUrl>.apigee.net/<yourApiName>?username=<yourTwilioApiUsername>&password=<yourTwilioApiPassword>&...向Twilio發出POST請求https://<yourApigeeApiUrl>.apigee.net/<yourApiName>?username=<yourTwilioApiUsername>&password=<yourTwilioApiPassword>&...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM