[英]How to pass procesing a call from Twilio functions back to Twilio Studio flow?
我正在尝试将我的工作室流程的某些部分迁移到Twilio Functions
,但不是全部,但是当我尝试重定向回工作室流程时,Twilio 死于错误 400 或挂断电话。
我正在试验以下代码:
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
//twiml.doWhatINeed();
twiml.redirect('https://webhooks.twilio.com/v1/Accounts/AC.../Flows/FW...?FlowEvent=success');
callback(null, twiml);
};
我希望它能在成功分支上继续工作室流程,但电话被挂断了。 我也尝试过省略FlowEvent
,但也好不到哪儿去。
当我输入无效的FlowEvent
(如helicopter
)时,我会收到错误 400。
你们知道我错过了什么吗?
在这里添加另一个答案,因为其他两个似乎不正确(不再?)。
为了在调用函数后返回到活动流,您必须使用TwiML Redirect 小部件而不是运行函数小部件,并且您必须在完成后重定向回 Studio 时将?FlowEvent=return
附加到您的流 webhook URL外部逻辑。 有关详细信息,请参阅链接的文档页面。
在重定向之前,您可以根据需要进行多轮 TwiML,因为 Studio 流会一直挂起调用(以及该调用在流中的位置)直到调用结束,即使它不再直接控制它也是如此。
要使用 TwiML Redirect 小部件而不是 Run Function,您需要做的就是手动获取函数 URL 并自行配置,而不是让 Run Function 小部件为您生成它。 您可以通过使用液体变量将参数作为 URI 参数在 URL 字符串中进行编码,然后使用 GET 方法而不是 POST 方法将参数传递给您的函数。
它看起来很古怪,但该页面让您使用附加到“运行功能”小部件的成功转换的虚拟“播放/说”小部件,并使用“FlowEvent=audioComplete”继续您的流程。
迈克所说的对我有用,只需确保在 Twilio Studio 上调用函数后连接一个“播放/说”并将其配置为“说一条消息”并将“要说的文本”留空。
在功能方面只需使用:
twiml.redirect('https://webhooks.twilio.com/v1/Accounts/AC.../Flows/FW...?FlowEvent=audioComplete');
我仍然没有将变量用作 URL 参数方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.