首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用API或HTTP POST编辑Twilio TwiML

使用API或HTTP POST编辑Twilio TwiML
EN

Stack Overflow用户
提问于 2019-05-27 20:19:46
回答 1查看 323关注 0票数 0

我的公司使用Twilio Flex作为我们的电话系统,我最近的任务是设置一个功能,让我们可以编辑在正常语音消息之前播放的TwiML语音消息。这条TwiML消息将通过我在微软团队中发布的Twilio机器人进行更改。

这样做的原因是,我们的支持台可以在正常的“欢迎使用公司支持”消息之前添加一条短消息,即“我们当前遇到X的问题”。

如果可以使用HTTP POST/PUT或Twilio的API编辑TwiML,这应该是一件微不足道的事情,但到目前为止我还不能弄清楚如何编辑。

我在API doc中找不到对此的任何引用,所以我决定使用HTTP POST。以此为起点,我可以使用HTTP GET检索我的TwiML:

https://support.twilio.com/hc/en-us/articles/223132187--Not-Authorized-error-when-trying-to-view-TwiML-Bin-URL

代码语言:javascript
复制
const axios = require('axios');
const crypto = require('crypto');
const accountSidFlex = process.env.accountSidFlex;
const authTokenFlex = process.env.authTokenFlex;

var URL = 'https://handler.twilio.com/twiml/EHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' + '?AccountSid=' + accountSidFlex
    var twilioSig = crypto.createHmac('sha1', authTokenFlex).update(new Buffer(URL, 'utf-8')).digest('Base64')
var config = {
    headers:{
    'X-TWILIO-SIGNATURE': twilioSig
    }
}

axios.get(
    URL,config  
).catch(error => console.log(error))
.then(response => {
    console.log(response.data)
})

response.data显示TwiML的当前内容。

我在POST中的尝试只给出了与GET相同的输出,而PUT给出了不允许的405方法。

代码语言:javascript
复制
var URL = 'https://handler.twilio.com/twiml/EHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' + '?AccountSid=' + accountSidFlex
var twilioSig = crypto.createHmac('sha1', authTokenFlex).update(new Buffer(URL, 'utf-8')).digest('Base64')

var config = {
    headers:{
    'X-TWILIO-SIGNATURE': twilioSig,
    'Content-Type': 'text/xml'
    }
}

var xml = 
'<?xml version="1.0" encoding="UTF-8"?>\
<Response><Play digits="www"/>\
<Say voice="alice">"We are currently experiencing X related issues". </Say>\
</Response>';

axios.post(
    URL,xml,config
)
.catch(error => console.log(error))
.then(response => {
    console.log(response.data)
})

理想情况下,我希望能够使用HTTP方法或Twilio-API来更改特定的TwiML,这样我们就可以在out Studio Flow中使用它。我们只是让它保持静默,直到我们需要向它添加一些东西,一旦问题过去,我们就会恢复静默。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-27 23:01:45

您当前不能以编程方式更改Twilio、Studio Flows或TwiML函数的内容。我相信您正在寻找的关键功能是一种基于某种条件动态更新Studio flow中的消息传递(比如/播放Widget)的方法。

一种方法是使用函数Widget来检索消息的Twilio Sync文档,将消息作为JSON返回,并让Say/Play小部件播放该消息。您可以在相关文档中找到添加、修改和检索的Twilio Sync REST API示例。

您可以使用这里详细介绍的变量语法https://www.twilio.com/docs/studio/widget-library#run-function来检索解析后的响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56325959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档