<appname>目前没有回复。请尽快重试

时间:2017-07-22 02:55:44

标签: json node.js dialogflow actions-on-google

当我尝试在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的网络模拟器上运行。我不明白这背后的原因。

1 个答案:

答案 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
    }
 }