如何在Twilio Liquid中从HTTP结果中选择项目



我在使用Twilio的Liquid实现从数组中检索数据时遇到了一些问题。

目前,我有一些适用于大小<15,这是一种类似的东西

{%- assign list = widgets.http_request.parsed.list -%} 
{%- assign returnVal = -1 -%} 
{%- assign input = widgets.reply_msg_input.inbound.Body | downcase | strip -%} 
{%- for item in list -%} 
{%- assign current = item.description | downcase -%}
{%- if current == input -%}
{%- assign returnVal = item.id -%} 
{%- endif -%} 
{%- endfor -%}
{{- returnVal -}}

但这有两个问题。

  1. Twilio的Liquid实现非常有限,因为在中我不能使用WHERE过滤器来获得它,也不能让循环经历超过15次迭代
  2. 我的清单有81项,这是我目前最大的问题

我尝试创建一个";循环;由小部件组成,这很有效,但任何未处理的意外值都会立即导致无限循环,从而结束执行。有没有什么方法可以在不使用任何函数的情况下做到这一点?我正在努力降低这种流量的成本,因为它是一种廉价的医疗渠道。

提前感谢!

您说得对,Twilio Studio在液体中处理列表是有限制的,特别是15次迭代的限制。

然而,除了你所建议的(在Studio中构建一个小部件循环,并将其传递给Function(之外,我认为在Twilio中没有其他方法可以帮助实现这一点。

如果您可以控制使用HTTP小部件调用的API,那么您也许可以构建一个端点,该端点接受用户输入作为参数,并且只返回您要查找的项。

否则,我建议使用函数来执行此操作。如果你想降低成本,那么我建议你尝试与销售人员交谈,或者,如果你的服务是非营利的,请申请Twilio.org。

最新更新