我正在开发一个带有 Dialogflow 实现的 Google Action 并且有一个奇怪的错误。在某些时候,尽管答案是正确形成的,但它并没有被正确地解析为 AppResponse。
唯一不同的似乎是尺寸。我测量了大小,发现当后端的 JSON 响应超过 1021 个字符(文本中多一个字符就足够了)时,它给了我这个错误:
由于语音响应为空,无法将 Dialogflow 响应解析为 AppResponse
在响应文本中只添加一个额外的字符是可重现的,这会让响应失败。
我找不到关于 JSON 响应的任何大小限制。对于我的示例,响应文本和卡片中的所有限制都足够了。
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "328 characters here"
}
},
{
"basicCard": {
"title": "39 characters",
"subtitle": "16 characters",
"formattedText": "82 characters here"
}
}
],
"suggestions": [
{
"title": "13 characters"
},
{
"title": "14 characters"
},
{
"title": "6 characters"
}
]
}
}
},
"outputContexts": [
{
"name": "default",
"lifespanCount": 99,
"parameters": {
"data": "54 characters"
}
}
]
}