- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 twilio npm 库将带有模板的 twiML 转换为 node.js 代码。更具体地说,我正在尝试对以下 twiML 进行类似的调用(使用 node.js):
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial callerId="+302111982501">{{#e164}}{{To}}{{/e164}}</Dial>
</Response>
我在我的代码中使用 twilio npm 库在我的代码中使用了其他 twiML。我在转换使用 {{}} 形式模板的模板时遇到了问题。
更新:上面的 twiML 被用作 twilio 的语音 SIP 域中的语音 URL 链接,以便来 self 的 sip 域的所有出站调用看起来都来自相同的号码(调用者 ID)。我已经更改了 URL,以在 node.js 中访问 rest api,并且还能够使用以下代码使用 XML 响应 twilio(来自 REST API):
const voiceResponse = new VoiceResponse();
const dial = voiceResponse.dial({ callerId: '+302111982501' });
dial.number('+306944444444');
res.status(200).contentType('text/xml')
.send(voiceResponse.toString());
通话效果很好。
问题是我想获取拨出的号码 {{To}},并将其放在 dial.number() 中。所以我尝试使用 req.body、req.params、req.query 来读取我的 REST API 中的 req。我找不到有关 twilio 调用的数据。 REST API 使用 express 在 google app engine 上运行。
所以更新后的问题是:
当语音 SIP 域与语音 URL 链接时,我如何从 twilio 发出的 POST 请求中获取 twilio 出站信息 (To),后者点击 REST API 而不是 TwiML?
最佳答案
我终于明白了。
我必须添加:app.use(bodyParser.urlencoded({ extended: true }));
由于来自 twilio 的请求是内容类型:x-www-form-urlencoded,所以到 express rest api。
关于node.js - 如何将带有模板的 twilio twiML 转换为 node.js 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54315029/
我是一名优秀的程序员,十分优秀!