当我尝试在MAC命令窗口中从gactions运行项目时,我得到了针对actions.sdk的Google网络模拟的测试错误。
当我在MAC的命令窗口中运行以下命令时,它在命令提示符下成功运行:
./gactions test --action_package action.json --project <project_id>
但是当我尝试在该项目的相应Web模拟页面上进行测试时,它会生成错误:
<Appname> isn’t responding right now. Try again soon.
这是actions.sdk网络模拟器发生对话的结果:
User: talk to <Appname>
App: Okay. For that, you might like <Appname>. Wanna give it a try?
User: yes
App: <Appname> isn’t responding right now. Try again soon.
这是我的action.json文件:
{
"actions": [
{
"description": "Default Welcome Intent",
"name": "input.welcome",
"fulfillment": {
"conversationName": "convo"
},
"intent": {
"name": "Default Welcome Intent",
"trigger": {
"queryPatterns": [
"talk to <Appname>"
]
}
}
}
],
"conversations": {
"convo": {
"name": "convo",
"url": "<CloundFunction url generated by firebase deploy>"
}
}
}
有趣的是,如果我在命令窗口中运行gactions test命令后尝试测试它,它会在actions.sdk的web模拟器上给出“无响应”错误。但是,如果我尝试通过api.ai的Integrations运行相同的项目,它可以在action.sdk的网络模拟器上运行。我不明白这背后的原因。
答案 0 :(得分:0)
这里有两件事可能是问题。
问题1 - 响应格式。
API.AI和gactions响应格式不同。您需要根据请求使用正确的node.js对象(也是不同的),或者确保根据请求发回正确的JSON。在某些情况下,node.js对象也提供稍微不同的方法,因此您可能需要注意。
您还没有显示有关您如何发送内容的任何代码,因此很难确定,但请记住这些内容。
第2期 - 版本不匹配
您发送的响应可能是规范的第2版,但您的action.json没有指定版本,因此默认为版本1.要指定版本2,您的action.json文件&#34;会话&#34;部分应包含fulfillmentApiVersion
属性。它可能看起来像:
"conversations": {
"convo": {
"name": "convo",
"url": "https://whatever.example.com/endpoint",
"fulfillmentApiVersion": 2
}
}