我有一个标准的Dialogflow代理,使用javascript/node.jswebhooks。在大多数情况下,它运行得非常好。我最近遇到了一个问题,使我完全不知所措。目前,我正在conv.data中保存一些JSON对象,以最小化我的web钩子必须进行的外部API调用。对于一个使用节点获取从外部API获取的特定JSON对象,我从我这边发送的响应看起来非常普通。我使用firebase,而firebase日志没有显示任何错误消息或任何可能出现问题的迹象。但是我在Google操作控制台中得到了这个错误:
UnparseableJsonResponse API版本2:未能解析带有'INVALID_ARGUMENT‘错误的JSON响应字符串:“解析在输入结束前终止。8、\”3“:12}、\"w ^”。
在堆栈驱动程序日志中,接收到的响应不以通常的响应开始。
收到了主体代理的响应: HTTP/1.1 200 OK Server:.等
相反,它从外部API-JSON-文件的中间开始。
. agent =‘agent 3’>,\“3”:12},\“winPercentage”:1392},.等
这在代理从外部API获取JSON后第一次响应时不会发生。当代理在获取JSON之后第二次响应时,无论来自JSON的信息是否被第二次调用所使用,一切都会崩溃,如果JSON文件在第一次调用和第二次调用之间被覆盖,则除了以外,其他任何内容都不会被JSON使用。如果文件被覆盖,程序将完美运行。因此,这个问题可能是存储和/或解析这个特定JSON文件的一部分。不幸的是,我在这个应用程序中使用的API不是公共API,而且由于NDA,我无法访问该JSON,因此我知道您可能不可能帮助我。不过,我将尽可能多地提供有关JSON的信息,并希望得到最好的结果:
根据jsonlint.com
我非常感谢我可能得到的任何和所有的帮助,即使这正是我需要问的问题,或者我可能尝试下一步进行故障排除的地方。
发布于 2020-02-04 13:47:01
我怀疑问题在于,您想要保存的JSON比它们分配给conv.data的缓冲区大小要大,尽管我找不到任何文档来说明有一些特定的限制。
我会检查您在错误标头中看到的字符串位于JSON中的位置,并尝试将其保持在这个限制之下。
https://stackoverflow.com/questions/60056636
复制相似问题