如何将处理来自 Twilio 函数的调用传递回 Twilio Studio 流程?
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。
你们知道我错过了什么吗?
它看起来很古怪,但该页面让您使用虚拟 "play/say" 小部件附加到 "run function" 小部件的成功转换,并使用 "FlowEvent=audioComplete" 继续您的流程。
mike 所说的对我有用,只需确保在 Twilio Studio 上调用函数后连接 "play/say" 并将其配置为 "Say a Message" 并将 "Text to Say" 留空。
在函数端使用:
twiml.redirect('https://webhooks.twilio.com/v1/Accounts/AC.../Flows/FW...?FlowEvent=audioComplete');
我仍然没有将变量用作 URL 参数方法。
在这里添加另一个答案,因为其他两个似乎不正确(不再是?)。
为了在调用函数后 return 到活动流,您必须使用 TwiML Redirect widget 而不是 运行 函数小部件,并且您必须附加 ?FlowEvent=return
到您的流网络挂接 URL 当您在完成外部逻辑后重定向回 Studio 时。有关详细信息,请参阅链接文档页面。
在重定向之前,您可以根据需要进行多轮 TwiML,因为 Studio 流会一直挂起调用(以及该调用在流中的位置)直到调用结束,即使它不直接控制就这样了。
要使用 TwiML Redirect 小部件而不是 运行 函数,您需要做的就是手动获取函数 URL 并自行配置,而不是让 运行 函数小部件为您生成它。您可以通过使用 liquid 变量将参数作为 URI 参数在 URL 字符串中编码,然后使用 GET 方法而不是 POST.
将参数传递给您的函数
我正在尝试将我的工作室流程的某些部分迁移到 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。
你们知道我错过了什么吗?
它看起来很古怪,但该页面让您使用虚拟 "play/say" 小部件附加到 "run function" 小部件的成功转换,并使用 "FlowEvent=audioComplete" 继续您的流程。
mike 所说的对我有用,只需确保在 Twilio Studio 上调用函数后连接 "play/say" 并将其配置为 "Say a Message" 并将 "Text to Say" 留空。
在函数端使用:
twiml.redirect('https://webhooks.twilio.com/v1/Accounts/AC.../Flows/FW...?FlowEvent=audioComplete');
我仍然没有将变量用作 URL 参数方法。
在这里添加另一个答案,因为其他两个似乎不正确(不再是?)。
为了在调用函数后 return 到活动流,您必须使用 TwiML Redirect widget 而不是 运行 函数小部件,并且您必须附加 ?FlowEvent=return
到您的流网络挂接 URL 当您在完成外部逻辑后重定向回 Studio 时。有关详细信息,请参阅链接文档页面。
在重定向之前,您可以根据需要进行多轮 TwiML,因为 Studio 流会一直挂起调用(以及该调用在流中的位置)直到调用结束,即使它不直接控制就这样了。
要使用 TwiML Redirect 小部件而不是 运行 函数,您需要做的就是手动获取函数 URL 并自行配置,而不是让 运行 函数小部件为您生成它。您可以通过使用 liquid 变量将参数作为 URI 参数在 URL 字符串中编码,然后使用 GET 方法而不是 POST.
将参数传递给您的函数