2017-08-02 45 views
0

我目前正在与该声明将处理以下意图的动作包工作:操作不使用SDK版本2

  • actions.intent.MAIN
  • actions.intent.TEXT
  • actions.intent.OPTION

我已经开始与前两个,并进行代理这个我自己的NLP /响应聚会我能够获得基本的功能工作。我现在试图通过使用askWithList来显示用户列表。我的行动包裹的定义如下:

{ 
    "actions": [ 
     { 
      "name": "MAIN", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.MAIN" 
      } 
     }, 
     { 
      "name": "TEXT", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.TEXT" 
      } 
     }, 
     { 
      "name": "OPTION", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.OPTION" 
      } 
     } 
    ], 
    "conversations": { 
     "JamesTest": { 
      "name": "JamesTest", 
      "url": "myngrok" 
     } 
    } 
} 

当我尝试在模拟器我收到以下错误askWithList和测试回应:

{ 
    "name": "ResponseValidation", 
    "subDebugEntry": [{ 
    "name": "MalformedResponse", 
    "debugInfo": "expected_inputs[0].possible_intents[0]: intent 'actions.intent.OPTION' is only supported for version 2 and above." 
    }] 
} 

按我的理解是,所有项目创建的文档2017年5月17日之后,默认情况下将使用版本2 SDK。我似乎也找不到任何迹象表明我可以明确声明我想在Action Package定义中使用哪个版本。

有没有人遇到过这个?这只是模拟器的一个限制,还是我缺少一些明显的东西?

回答

0

它看起来好像conversations块中有一个无证的(至少我找不到它)字段,名为fulfillmentApiVersion,您的操作包中必须设置为2。来自这里的答案:askWithList on Actions on Google

0

你错过了一些毫无意义的东西。 {:此文档是somewhat hiddengactions命令仍然会生成版本1的json文件。

动作包装必须明确地表明,它正在使用的版本,否则将被假定为使用版本1

要指定版本2,你的“对话”栏目应该是这个样子:

"conversations": { 
    "JamesTest": { 
     "name": "JamesTest", 
     "url": "myngrok", 
     "fulfillmentApiVersion": 2 
    } 
} 

请注意“fulfillmentApiVersion”参数。