【问题标题】:How to pass procesing a call from Twilio functions back to Twilio Studio flow?如何将处理来自 Twilio 函数的调用传回 Twilio Studio 流程?
【发布时间】:2019-09-03 09:13:57
【问题描述】:

我正在尝试将我的工作室流程的某些部分迁移到 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。

你们知道我错过了什么吗?

【问题讨论】:

    标签: twilio twilio-functions twilio-studio


    【解决方案1】:

    在此处添加另一个答案,因为其他两个似乎不正确(不再?)。

    为了在调用函数后返回活动流,您必须使用 TwiML Redirect widget 而不是运行函数小部件,并且在您重定向回 Studio 之后,您必须将 ?FlowEvent=return 附加到您的流 webhook URL完成你的外部逻辑。有关详细信息,请参阅链接的文档页面。

    在重定向之前,您可以根据需要执行任意多轮 TwiML,因为 Studio 流程会一直挂在调用(以及该调用在流程中的位置)直到调用结束,即使它不再直接控制它.

    要使用 TwiML Redirect 小部件而不是 Run Function,您需要做的就是手动获取函数 URL 并自行配置,而不是让 Run Function 小部件为您生成它。您可以将参数传递给您的函数,方法是使用液体变量在 URL 字符串中将它们编码为 URI 参数,然后使用 GET 方法而不是 POST。

    【讨论】:

      【解决方案2】:

      mike 所说的内容对我有用,只需确保在 Twilio Studio 上的函数调用之后连接“播放/说”并将其配置为“说消息”并将“要说的文本”留空。

      在功能方面只需使用:

      twiml.redirect('https://webhooks.twilio.com/v1/Accounts/AC.../Flows/FW...?FlowEvent=audioComplete');
      

      我仍然没有将变量用作 URL 参数方法。

      【讨论】:

        【解决方案3】:

        看看https://support.twilio.com/hc/en-us/articles/360019580493-Using-Twilio-Functions-to-Enhance-Studio-Voice-Calls-with-Custom-TwiML的页面。

        它看起来很古怪,但该页面让您使用附加到“运行功能”小部件的成功转换的虚拟“播放/说”小部件,并使用“FlowEvent=audioComplete”继续您的流程。

        【讨论】:

        • 这还是一回事吗?除了从 TwiML 重定向小部件返回之外,我在整个文档中看不到任何提及 FlowEvent
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-07
        相关资源
        最近更新 更多