操作不使用SDK版本2
问题描述:
我目前正在与该声明将处理以下意图的动作包工作:操作不使用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定义中使用哪个版本。
有没有人遇到过这个?这只是模拟器的一个限制,还是我缺少一些明显的东西?
答
它看起来好像conversations
块中有一个无证的(至少我找不到它)字段,名为fulfillmentApiVersion
,您的操作包中必须设置为2
。来自这里的答案:askWithList on Actions on Google
答
你错过了一些毫无意义的东西。 {:此文档是somewhat hidden和gactions
命令仍然会生成版本1的json文件。
动作包装必须明确地表明,它正在使用的版本,否则将被假定为使用版本1
要指定版本2,你的“对话”栏目应该是这个样子:
"conversations": {
"JamesTest": {
"name": "JamesTest",
"url": "myngrok",
"fulfillmentApiVersion": 2
}
}
请注意“fulfillmentApiVersion”参数。