Twilio TwiML 如何将 URL 参数传递给 TwiML 脚本?

Twilio TwiML How do I pass URL parameters to TwiML script?

我想通过 URL 传递一个参数,以便 TwiML 在它对 phone 另一端的人讲话时从中读取。我似乎无法让它正常工作。我试过各种各样的东西。

这是我的 ASP.NET VB 代码...

Dim XClient As New TwilioRestClient(accountSid:=accountSID, authToken:=authToken)
XClient.InitiateOutboundCall(from:=From, [to]:=SendTo, url:="http://mywebsite.com/TestURI.xml?test=Todd")

这是我的 XML...

    <?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="alice">$test</Say>
    <Pause length="1"/>
    <Say voice="alice">Do you enjoy hotdogs? I do.</Say>
    <Pause length="1"/>
    <Say voice="alice">Please work so that I can enjoy my lunch in peace!</Say>
</Response>

如何让这个 TwiML 脚本从 URL 报告 "Todd"?任何帮助深表感谢。谢谢!

您需要做的是生成一个动态 XML (TwiML) 响应,该响应可以将任何查询参数合并到 XML 响应中。我不太了解 ASP.NET 或 Visual Basic,但大多数 Web 编程语言都有一种方法可以生成动态响应以响应 HTTP 请求。

这是 Twilio 文档中的一个示例,说明如何从 ASP.NET MVC 应用程序生成 TwiML 响应 - 它可能与您正在使用的技术不完全相同,但它可能会帮助您指出正确方向:

https://www.twilio.com/docs/voice/quickstart/csharp?code-sample=code-make-an-outgoing-call-using-twilio-and-c&code-language=C%23&code-sdk-version=5.x

TwimL Bins 具有您可以利用的模板概念(并且不必在您自己的服务器上托管 TwiML)。

如何将模板与 TwiML Bins 一起使用

https://support.twilio.com/hc/en-us/articles/230878368-How-to-use-templates-with-TwiML-Bins

传入 URL 参数,然后在 TwiMLBin 中将其作为模板引用。

   <Say>{{Test}}</Say>

您还可以使用 Twilio 函数(节点),https://www.twilio.com/console/runtime/functions/manage,使用 JavaScript ES6 模板文字来做类似的事情:

exports.handler = function(context, event, callback) {
    let twiml = new Twilio.twiml.VoiceResponse();
    let testParam = event.test;
    twiml.say(`Hello ${testParam}`);
    callback(null, twiml);
};