You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Twilio集成向Dialogflow传主叫号码遇阻:OriginalDetectIntentRequest无法提交

问题解决思路

首先,你代码里的OriginalDetectIntentRequest获取方式不对——它不在agent.parameters里,而是在agent.request_.originalDetectIntentRequest路径下。而且Twilio传递的主叫号码(from)嵌套在这个对象的payload里,SheetDB大概率不支持接收复杂嵌套对象,这也是你提交该字段失败的核心原因。

修正步骤

  1. 正确提取主叫号码:从Twilio的请求 payload 里直接取出需要的主叫号码,而非传递整个复杂对象:
function reschedule(agent) {
  // 获取原始请求对象
  const originalRequest = agent.request_.originalDetectIntentRequest;
  // 从Twilio的payload中提取主叫号码(Twilio字段为From,注意大小写)
  const callerNumber = originalRequest?.payload?.From;

  // 仅传递扁平的字段给SheetDB
  axios.post('https://sheetdb.io/api/v1/q0te84lfo1aal?sheet=Appointments', {
    "data": {
      "student": student,
      "to_date": to_date,
      "from_date": from_date,
      "created": new Date(),
      "caller_number": callerNumber // 直接存储主叫号码,而非整个OriginalDetectIntentRequest对象
    }
  });
}
  1. 适配SheetDB数据要求:SheetDB仅接受扁平的键值对数据,复杂嵌套对象会被解析失败或直接忽略,因此必须提取具体字段(比如主叫号码)而非传递整个原始请求对象。

  2. 添加容错处理:用?.可选链操作符避免因请求结构异常导致代码报错。

补充说明

Dialogflow的OriginalDetectIntentRequest是存储第三方集成(如Twilio)原始请求数据的嵌套对象,这类结构无法被SheetDB这类表格API直接处理,所以核心是提取你实际需要的字段(主叫号码),而非传递整个对象。

内容的提问来源于stack exchange,提问作者Andrew Learned

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:45:32