我有一个与Actions on Google,Dialogflow & AWS Lambda的项目来管理实现。在后端(NodeJs),我使用actions-on-google (v2)
const {dialogflow} = require('actions-on-google');
const app = dialogflow({debug: true});
app.intent('StartIntent', (conv) => {
console.log('Hello AWS');
conv.ask('Hello AWS');
});
exports.handler = app对话框流配置有一个意图的StartIntent & webhook实现。
当我在Google模拟器上测试动作时,一切似乎都很好。我得到了“Hello”的预期答案。
但是,它不适用于对话框流模拟器。没有答案,尽管我可以阅读诊断信息中的“Web钩子执行成功”,并得到正确的实现响应:
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "Hello AWS"
}
}
]
},
"userStorage": "{\"data\":{}}"
}
},
"outputContexts": [
{
"name": "projects..../_actions_on_google",
"lifespanCount": 99,
"parameters": {
"data": "{}"
}
}
]
}这对我来说真的很奇怪,因为Google上的动作只是打个电话给对话框,这样就能得到很好的响应。然而,单独测试对话框流不起作用。
知道吗?
发布于 2018-06-07 15:59:53
这是意料之中的。actions on Google库为Google助手集成调整了其输出。它不尝试包含泛型对话框流代理使用的输出,这是对话框流测试字段所使用的输出。
如果它在助理模拟器工作-你应该是好的。
更新
具体来说,Google库在JSON响应中在payload.google.richResponse中设置了值,这些值设置了Google显示的消息。顾名思义,这是Google特有的输出,因此对话框流测试侧栏(以及其他处理对话框流的代理)忽略了这一部分。
Dialogflow有返回消息的一般方法,包括JSON响应中的fulfillmentText和fulfillmentMessages字段。对话框流测试侧栏使用这些字段来显示结果。google上的操作库没有设置或使用这些字段,因此结果不可用.
https://stackoverflow.com/questions/50741575
复制相似问题