首页 > 解决方案 > Twilio 功能:从工作室流程“设置变量”访问变量

问题描述

我敢肯定这是一个愚蠢的问题,但我并没有声称自己是开发人员,只是具有广泛工作描述的人

我正在关注本指南:https ://www.twilio.com/blog/forward-voicemail-recordings-to-email

转录回调正确触发并向我发送电子邮件。那太棒了。

我希望扩展它以通过收集小部件收集其他信息字段。我将以下内容发送到我的功能:

{
  "flow": {
    "flow_sid": "FW07e11311d367...f8a0501c05e5108",
    "variables": {
      "CallerName": "Joe Bloggs"
    },
    "channel": {
      "address": "+441...147"
    },
    "sid": "FN866c64beb9...f5bf349fa19ad3"
  },
  "widgets": {
    "SetCallerNameVar": {
      "CallerName": "Joe Bloggs"
    },
    "GatherVoicemail": {
      "Called": "+4414....7",
      "Digits": "#",
      "RecordingUrl": "https://api.twilio.com/2010-04-01/Accounts/AC5fa2...12c7/Recordings/RE3a1d420de6db...2abb554c04f6",
      "CallerCountry": "GB",
      "Direction": "inbound",

[...]

我通过 ${event.variable} 语法访问其他(工作)信息。但是,简单地执行 ${event.CallerName} 会导致“未定义”。谁能建议如何访问我在流程中设置的 CallerName 变量?

如果我调用函数而不是使用转录回调,传递参数会很容易,但这样做会导致每次调用重复电子邮件。

我希望这是有道理的,并感谢任何建议。

谢谢

标签: twilio

解决方案


Twilio 开发人员布道者在这里。

这里的问题是您的转录回调没有与 Studio Flow 相同的上下文,因此没有附带所有其他数据。但是,您可以通过在转录回调 URL 上设置查询参数来将该上下文添加到请求中。

尝试将您的转录回调 URL 设置为:

https://your-function-service.twil.io/?CallerName={{flow.variables.CallerName}}

然后,您将收到CallerNameinevent对象。

在此处输入图像描述

请注意,转录回调 URL 字段不会突出显示液体变量,但会进行插值。现在有一个未解决的问题可以将突出显示添加到此字段。


推荐阅读