未在Carousel中调用后备意图(Google上的操作)

时间:2017-09-22 21:24:41

标签: webhooks dialogflow actions-on-google

我通过API.AI

将Google上的操作(在我的Android上)连接到我的webhook

当用户订购时,比如在线披萨,API.AI会创建一个后备意图,而webhook会发送一个带有Carousel的json。

这很好用。如果用户点击Carousel项目,响应也会发送到webhook。

我通过询问"多少个比萨饼和#34;来回应这个点击。并使用建议芯片。

但是,API.AI中没有激活后备意图,应用程序崩溃。

之前,我给旋转木马选择了一个简单的文字回复"感谢您的订单"它正在发挥作用。

有人可以帮我解决这个问题吗?

我意识到问题不在API.AI或后备意图中,而是在我发送的JSON中。如果我使用简单的文本/语音响应回复用户在Carousel中的选择,则它可以正常工作。如果我再次发送Carousel芯片也可以。但是,如果我尝试发送列表或卡片,它会崩溃。也许,我没有正确的json格式。

如果有人通过他们的webhook(使用API​​.AI)发送任何json用于列表/建议芯片或卡片,那将非常有用!

@matthewayne当我发送以下内容作为回复(json)时,它有效:

speech = "Thank you. People also looked at these:"
print(speech)
webhook_result={
    "speech": speech,
    "contextOut": [
        {
            "name": "_actions_on_google_,complementary",
            "lifespan": 100,
            "parameters": {}
        }
    ],
    "data": {
        "google": {
            "expectUserResponse": True,
            "richResponse": {
                "items": [
                    {
                        "simpleResponse": {
                            "textToSpeech": speech
                        }
                    }
                ],
                "suggestions": []
            },
            "systemIntent": {
                "intent": "actions.intent.OPTION",
                "data": {
                    "@type": "type.googleapis.com/google.actions.v2.OptionValueSpec",
                    "carouselSelect": {}
                }
            }
        }
    }
}  

我还用carousel中的东西列表填充carouselSelect。但如果我将其更改为listSelect,并做出响应,它就会崩溃。

当我说崩溃时,这意味着Google说我的应用已停止响应。

拥有一个模板或示例listResponse json。

非常有帮助

1 个答案:

答案 0 :(得分:0)

在向用户发送轮播响应之后,将要发送的下一个请求可能是列表选择事件。你需要处理这个:

    API.AI中的
  1. (通过使用事件actions_intent_OPTION创建一个意图,docs here
  2. 使用the Google Assistant client librarydocs here)在您的webhook中