Dialogflow Webhook 响应未发送到 Twilio - Twilio 调试器上出现 14103 Invalid Body 错误

2024-01-05

我正在实现一个通过 Twilio 与 WhatsApp 集成的聊天机器人。该机器人使用 V2 API,我已经在 Google 云上实现了集成,因为它们将被关闭。

当我从 WhatsApp 触发机器人时,会触发正确的意图并执行正确的功能。

但当我检查 Twilio 时,它返回“14103 Invalid Body”错误,并注意到 Dialogflow 没有向 Twilio 返回任何内容。

然而,当我只是给出默认响应时,它会被返回到 Twilio,并且类似地在 WhatsApp 上作为回复给出。因此,集成工作正常。这只是回应。

在我的履行代码中,一切都正确执行,除了

conv.ask('Response'); //The actual message that needs to be sent back

Update

当我从对话流控制台和 WhatsApp 向机器人发送消息时,我检查了响应

从控制台触发时的响应 -

Response {
  "status": 200,
  "headers": {
    "content-type": "application/json;charset=utf-8"
  },
  "body": {
    "payload": {
      "google": {
        "expectUserResponse": true,
        "richResponse": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Outbound message"
              }
            }
          ]
        }
      }
    },
    "fulfillmentText": "Outbound message"
  }
}

从 WhatsApp 触发时的响应 -

Response {
  "status": 200,
  "headers": {
    "content-type": "application/json;charset=utf-8"
  },
  "body": {
    "payload": {
      "google": {
        "expectUserResponse": true,
        "richResponse": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Outbound message"
              }
            }
          ]
        }
      }
    }
  }
}

这是代码片段(如果有帮助的话)

'use strict';
const fetch = require('node-fetch');
const functions = require('firebase-functions');
const vision = require('@google-cloud/vision');
const https = require("https");
const admin = require('firebase-admin');
const {dialogflow} = require('actions-on-google');
const app = dialogflow({clientId: 'My_Client_Id', debug:true});

//initialise DB connection
admin.initializeApp({
credential:admin.credential.applicationDefault(),
databaseURL:'My_Firebase_Link',
});


exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

const welcome = 'Default Welcome Intent';

app.intent(welcome, (conv) => {
  //Function for Default Welcome Intent
    //console.log(conv); 
    var testNumber = 10;
    testNumber = testNumber + 10;
    console.log(testNumber);//When I trigger the bot, everything until this get's executed and I can see 20 in log 
    conv.ask('Outbound message');//This gets executed too but the reply that seems to be returned to Twilio is empty
});

履行文本响应未发送到 Twilio - 因此出现“无效正文”错误。我仍然很困惑为什么它不向 Twilio 发送文本响应。

如果我遗漏了什么,有人可以帮我知道吗?如果有特定的格式我需要写响应。

提前致谢


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dialogflow Webhook 响应未发送到 Twilio - Twilio 调试器上出现 14103 Invalid Body 错误 的相关文章

  • 如何使用 bash 脚本通过 tar 备份文件系统?

    我想备份我的 ubuntu 文件系统 我写了这个小脚本 这是非常基本的 但这是我第一次尝试 我害怕犯错误 由于需要几个小时才能完成才能看到结果 因此我认为最好向经验丰富的程序员询问我是否做错了什么 我特别感兴趣 gt 会记录输出mv或者它也
  • 偶尔连接的 CQRS 系统 - 客户端和服务器命令 - 基于任务的屏幕

    Premise 建议在CQRS DDD ES样式应用程序使用task基于屏幕 这些屏幕引导用户并捕获意图 These task屏幕也可以称为感应式用户界面 UI 设计指南的一些示例可以帮助您创建现代的 用户友好的应用程序 Microsoft
  • Java 中的下载管理器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要通过 FTP HTTP 从 Java 获取几个大文件 几个演出 有现成的库 java 命令行工具
  • 从其对象获取结构体字段的名称和类型

    例如 我有一个类似这样的结构 struct Test int i float f char ch 10 我有一个该结构的对象 例如 Test obj 现在 我想以编程方式获取字段名称和类型obj 是否可以 顺便说一句 这是 C 你正在要求C
  • Hibernate Envers:如何捕获谁删除了审计表中的实体

    我在用hibernate envers with spring 一切工作正常 除了当我删除一个实体时 它不会改变的值updated by and updated date在审计表内 它会在之后保存一个与之前完全相同的实体 仅复制 sprin
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 内容是从 WiFi 直接传输到 Chromecast,还是从 WiFi 传输到 Android 再传输到 Chromecast?

    内容是从 WiFi 直接传输到 Chromecast 还是从 WiFi 传输到 Android 或任何其他设备 再传输到 Chromecast 我知道其他设备可用于控制 Chromecast 但我只想知道由于电池寿命的原因 您是否可以直接从
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min
  • 在magento Attributes中添加自定义属性并显示在前端

    我已经开始使用 magento 作为我的电子商务 cms 我知道这是一个非常强大的平台 最近 我发现它的功能可以帮助开发人员扩展核心 并且我已经成功添加了自定义类别选项 是否有机会在某个属性上达到相同的结果 我想在属性选项卡上添加文本描述并
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get
  • 物理写入文件已满 - mysql 错误

    我正在使用xampp 每次启动mysql时 我都会在xampp中收到以下错误 Error MySQL shutdown unexpectedly 13 16 14 mysql This may be due to a blocked por
  • 重定向到其他控制器中的操作

    我想从一个控制器中的操作重定向到第二个控制器中的操作 通常我会使用 RedirectToAction actionName controllerName objects 我想要重定向到的方法有两个重载 一个用于 HttpVerbs Get
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 是否有与 pdl2(或 Devel::REPL)中的 perl 调试器“x”等效的东西?

    我在用pdl2 the PDL http p3rl org PDLshell 也作为我的默认 Perl 交互式 shell 它加载所有不错的插件Devel REPL http search cpan org perldoc Devel 3a
  • 从 C/C++ 程序进行 Ping

    我想编写一个 C 或 C 程序 给定一个 IP 地址 对其进行 Ping 然后根据 Ping 是否成功执行进一步的操作 这个怎么做 尽情享受Ping 页面 http www ping127001 com pingpage htm 其中有一个
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7

随机推荐

  • @Transactional Spring MyBatis 不工作

    我有一个 Spring Web 应用程序 一切都很好 但现在我需要一种方法来进行事务处理 这是我的 applicationContext xml
  • onbeforeunload 支持检测

    我想检查当前浏览器是否支持 onbeforeunload 事件 常见的 javascript 方法似乎不起作用 if window onbeforeunload alert yes else alert no 实际上 它只检查某个处理程序是
  • 非命名空间范围错误的显式专业化......迫切需要帮助

    有人可以帮我将以下代码移植到GCC 我在这个网站上发现了很多或相关的问题 但我似乎无法在我的案例中应用建议的解决方法 typedef float MyData attribute vector size 16 template
  • 我什么时候应该使用blockingGet?

    我在工作中经常使用 RxJava 并且看到了一些调用返回 Observable 或 Single 的方法的示例 然后在其上调用blockingGet 以在不同的 我认为这可能是对图书馆和概念的滥用 但我可能是错的 我举一个小例子 publi
  • 用于多处理日志记录的 QueueHandler

    我正在尝试调整我的程序以将不同进程记录到单个日志文件中 我已经寻找解决方案很多天了 但没有成功 我想我仍然不明白队列处理程序是如何工作的 在我看来 这个过程是这样的 create q 将 qHandler 添加到主记录器 所有日志都将重定向
  • Oracle 10g:解析合并重复项的2列

    我有一个包含 3 列的表 DATE A DATE B and ISSUE DATE A and DATE B可以通过 3 种可能的方式填写 要么两者都有一个值 要么只有一个有 如下所示 DATE A DATE B ISSUE 2013030
  • org.hibernate.ejb.criteria.path.Abs​​tractPathImpl.get 处的 NullPointerException [重复]

    这个问题在这里已经有答案了 这工作正常 public Predicate toPredicate Root
  • 如何将现有的heroku应用程序拉到新位置进行开发?

    目前 我在另一台计算机上有最新版本的代码 我想用它来开发 家用计算机和笔记本电脑 供我外出时使用 我在笔记本电脑上为我的应用程序设置了heroku 现在我需要将我的代码关联到桌面上 以便我也可以从那里推送到 heroku 这是我从桌面上得到
  • 使用scala获取包中的所有类名

    我有一个包裹 package one two three 在那个包裹里我有 public trait first public class Second and pubic class Third 我想将所有类和接口 一 二 三 名称获取为
  • 如何将 CSV 文件中的批量数据导入到 DynamoDB 中?

    我正在尝试将 CSV 文件数据导入 AWS DynamoDB 我的 CSV 文件如下所示 first name last name sri ram Rahul Dravid JetPay Underwriter Anil Kumar Gur
  • 如何在非托管c++ dll中查找调用者程序集名称

    我有一个非托管 c dll 我正在从 c net 3 5 调用此非托管 dll 的外部方法 我正在寻找一种方法来找到女巫 c 程序集正在调用我的非托管 c dll 进入我的 c dll 至少是程序集的名称 当然 我不想将任何附加参数传递给方
  • 显示虚拟环境

    当我在 virtualenv 中并且它处于活动状态时 环境名称将显示在正常命令行提示符之前的括号中 看起来像 foo env User Development foo env foo where foo env是环境的名称 我想知道是否有办
  • T-SQL:在 UPDATE 语句中使用 CASE 根据条件更新某些列

    我想知道这是否可能 如果条件为真 我想更新列 x 否则将更新列 y UPDATE table SET CASE CONDITION WHEN TRUE THEN columnx ELSE columny END 25 我到处搜索 尝试了一些
  • 在 .Net 中使用 GraphQL 客户端库实施 AWS Appsync

    我正在尝试实现类似于此 python 示例但在 net 中的应用程序同步订阅https aws amazon com blogs mobile appsync websockets python https aws amazon com b
  • 在 asp.net mvc 中实现“不跟踪”

    如何实现不跟踪来自 asp net mvc3 的浏览器同意 如果用户设置了不跟踪浏览器中启用的设置 所有主要浏览器 例如 IE Firefox 和 Chrome 是否都会发送一些 cookie 同意请求 Do Not Track 仅意味着浏
  • 如何设置根视图控制器

    我设置了一个仅包含应用程序委托类的空应用程序 然后对视图控制器类进行子类化以创建 xib 来布局应用程序并建立连接 但是当我尝试在 iOS 模拟器上运行该应用程序时 出现错误 CoinToss 6212 f803 应用程序预计在应用程序启动
  • std::set of MyElement 与 MyElement::SomeMethod 作为自定义比较器

    我有一个简单的MyElement类 我想使用bool MyElement SomeMethod 作为自定义比较器std set of MyElement items 我已经进行了研究 并且已经知道一些替代解决方案 我在下面列出了这些解决方案
  • 如何检查 DataView.RowFilter 中的空白

    假设我有一个名为 A 的列 并且我想检查 A 是否为空或空白 那么使用 DataView 的 RowFilter 进行检查的正确方法是什么 DataTable dt GetData DataView dv new DataView dt d
  • 前向声明/何时最好包含标头? [复制]

    这个问题在这里已经有答案了 我很清楚何时可以 不能使用前向声明 但我仍然不确定一件事 假设我知道我迟早必须包含一个标头才能取消引用 A 类的对象 我不清楚做类似的事情是否更有效 class A class B A a void DoSome
  • Dialogflow Webhook 响应未发送到 Twilio - Twilio 调试器上出现 14103 Invalid Body 错误

    我正在实现一个通过 Twilio 与 WhatsApp 集成的聊天机器人 该机器人使用 V2 API 我已经在 Google 云上实现了集成 因为它们将被关闭 当我从 WhatsApp 触发机器人时 会触发正确的意图并执行正确的功能 但当我