Actions on google 具有多个操作\u意图\u选项处理程序的Google助手流

Actions on google 具有多个操作\u意图\u选项处理程序的Google助手流,actions-on-google,google-assistant-sdk,dialogflow-es,Actions On Google,Google Assistant Sdk,Dialogflow Es,我通过Dialogflow为我在Github上制作的一个应用程序配置了Webhook。我有一个通过Facebook Messenger和Google Assistant集成的机器人。Facebook的所有功能都很好,因为这些操作会发回字符串,而且很容易处理。但是,当Google Assistant尝试处理“@type”:“type.googleapis.com/Google.actions.v2.OptionValueSpec”项目时,Dialogflow中的事件需要actions\u inte

我通过Dialogflow为我在Github上制作的一个应用程序配置了Webhook。我有一个通过Facebook Messenger和Google Assistant集成的机器人。Facebook的所有功能都很好,因为这些操作会发回字符串,而且很容易处理。但是,当Google Assistant尝试处理“@type”:“type.googleapis.com/Google.actions.v2.OptionValueSpec”项目时,Dialogflow中的事件需要actions\u intent\u选项来处理响应。如果我的应用程序中只有一个,它可以正常工作,但是当我添加第二个OptionValueSpec类型的列表项/旋转木马项时,流阻塞了。我有附加图像的详细信息。我的猜测是需要actions\u intent\u选项来处理列表,但是当我在events部分的多个intent上放置该选项时,流不知道如何处理它

Facebook Messenger(工作)与Google Assistant(有bug)的比较

谷歌助手的详细全流程视图

发送到Dialogflow的响应随后被发送到Google Actions。。。 与上面的UI图片相关的准确响应

//按预期工作
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“嘿!这是Facebook Messenger和Google Assistant之间常见组件的导览。”
}
},
{
“简单响应”:{
“textToSpeech”:“您可以从github.com/ianrichard开始编写示例项目。”
}
}
],
“建议”:[{
“标题”:“演示演示!”
},
{
“标题”:“显示代码和文档”
}
]
}
}
//如期工作
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“动画GIF总是很有趣,可以添加到混音中!”
}
},
{
“basicCard”:{
“图像”:{
“url”:”https://somewebsite.com/colbert.gif",
“accessibilityText”:“斯蒂芬·科尔伯特在节目开始时很开心。”
}
}
}
],
“建议”:[{
“标题”:“一张卡片怎么样?”
}]
}
}
//如期工作
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“绝对!”
}
},
{
“简单响应”:{
“textToSpeech”:"Devil's Backbone以蜿蜒的Hill Country highway命名,它是一款比利时风格的tripel啤酒。它有着美丽的淡金色,这种啤酒的辛辣啤酒花和比利时酵母共同创造出独特的风味和香气。别让浅色蒙蔽了你,它也有黑暗的一面。传统的比利时酿造技术增加了不增加重量的力量。”
}
},
{
“basicCard”:{
“图像”:{
“url”:”https://somewebsite.com/devils-backbone.jpg",
“accessibilityText”:“魔鬼的脊梁”
},
“头衔”:“魔鬼的脊梁骨”,
“副标题”:“比利时式三角帆”,
“按钮”:[{
“标题”:“阅读更多”,
“openUrlAction”:{
“url”:”https://realalebrewing.com/beers/devils-backbone/"
}
}]
}
}
],
“建议”:[{
“标题”:“列表怎么样?”
}]
}
}
//如期工作
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“绝对!”
}
},
{
“简单响应”:{
“textToSpeech”:“你最喜欢的角色是谁?”
}
}
]
},
“系统意图”:{
“意图”:“actions.intent.OPTION”,
“数据”:{
“@type”:“type.googleapis.com/google.actions.v2.OptionValueSpec”,
“列表选择”:{
“项目”:[{
“选项信息”:{
“钥匙”:“提利昂”
},
“头衔”:“提利昂·兰尼斯特”,
“描述”:“Peter Dinklage”,
“图像”:{
“url”:”https://somewebsite.com/got-tyrion.jpg",
“accessibilityText”:“Tyrion Lannister”
}
},
{
“选项信息”:{
“键”:“daene”
},
“标题”:“丹妮莉丝·坦格利安”,
“描述”:“Emilia Clarke”,
“图像”:{
“url”:”https://somewebsite.com/got-daenerys.jpg",
“accessibilityText”:“Daenerys Targryen”
}
},
{
“选项信息”:{
“钥匙”:“乔恩”
},
“头衔”:“乔恩·斯诺”,
“说明”:“Kit Harington”,
“图像”:{
“url”:”https://somewebsite.com/got-jon.jpg",
“accessibilityText”:“Jon Snow”
}
}
]
}
}
}
}
//如果定义了两个具有相同actions\u intent\u选项的事件,它将直接进入末尾,并且永远不会调用列表选项处理程序
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“结束”
}
},
{
“简单响应”:{
“textToSpeech”:“好了,演示到此结束。希望您喜欢!”
}
}
],
“建议”:[{
“标题”:“重新开始”
}]
}
}
//否则,它将显示最后一个旋转木马
{
“richResponse”:{
“项目”:[{
“简单响应”:{
“textToSpeech”:“我喝酒,我知道一些事情!”
}
},
{
“简单响应”:{
“textToSpeech”:“你打算从蒂芙尼那里给你妻子买什么?”
}
}
]
},
“系统意图”:{
“意图”:“actions.intent.OPTION”,
“数据”:{
“@type”:“type.googleapis.com/google.actions.v2.OptionValueSpec”,
“旋转木马选择”:{
“项目”:[{
“选项信息”:{
“钥匙”:“太阳镜”
},
“头衔”:“飞行员太阳镜”,
“说明”:“$360”,
“图像”:{
“url”:“https://s
{
    "speech": "",
    "displayText": "",
    "data": { "google": { ... } },
    "contextOut": [
        {
            "name": "carouselExample",
            "lifespan": 0,
            "parameters": null
        }
    ]
}