获取 Google 助理操作以响应 "Quit" 或 "Cancel"

Get Google Assistant Action to respond to "Quit" or "Cancel"

我已尝试遵循 documentation about App Exit handling,但它似乎无法正常工作。 (请参阅下面我的 Intent 的屏幕截图)。

当我这样做时,它似乎诉诸于我的默认后备意图,尽管它确实表明 resolvedQueryactions_intent_CANCEL,这应该是正确的。 (请参阅下面的 JSON 正文。)

是我做错了什么,还是文档有误?

试图处理它的意图:

JSON正文:


{
    "originalRequest": {
        "source": "google",
        "version": "2",
        "data": {
            "isInSandbox": true,
            "surface": {
                "capabilities": [
                    {
                        "name": "actions.capability.AUDIO_OUTPUT"
                    },
                    {
                        "name": "actions.capability.SCREEN_OUTPUT"
                    }
                ]
            },
            "inputs": [
                {
                    "rawInputs": [
                        {}
                    ],
                    "intent": "actions.intent.CANCEL"
                }
            ],
            "user": {
                "locale": "en-US",
                "userId": "AETml1QP6omTPEXBfrOBdvNlwHxY"
            },
            "conversation": {
                "conversationId": "1509314271837",
                "type": "ACTIVE",
                "conversationToken": "[]"
            },
            "availableSurfaces": [
                {
                    "capabilities": [
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        },
                        {
                            "name": "actions.capability.SCREEN_OUTPUT"
                        }
                    ]
                }
            ]
        }
    },
    "id": "bbd363aa-f555-4543-a748-294751194fa9",
    "timestamp": "2017-10-29T21:58:00.691Z",
    "lang": "en-us",
    "result": {
        "source": "agent",
        "resolvedQuery": "actions_intent_CANCEL",
        "speech": "",
        "action": "input.unknown",
        "actionIncomplete": false,
        "parameters": {},
        "contexts": [
            {
                "name": "actions_intent_cancel",
                "parameters": {},
                "lifespan": 0
            },
            {
                "name": "actions_capability_screen_output",
                "parameters": {},
                "lifespan": 0
            },
            {
                "name": "actions_capability_audio_output",
                "parameters": {},
                "lifespan": 0
            }
        ],
        "metadata": {
            "intentId": "25f6e14b-a92c-479b-8943-76c4b6914579",
            "webhookUsed": "true",
            "webhookForSlotFillingUsed": "false",
            "nluResponseTime": 2,
            "intentName": "Default Fallback Intent"
        },
        "fulfillment": {
            "speech": "I'm sorry. I didn't quite grasp what you just said.",
            "messages": [
                {
                    "type": 0,
                    "id": "535c3b80-f13d-4b61-8c1d-bb58fa3f5e44",
                    "speech": "I'm a bit confused by that last part."
                }
            ]
        },
        "score": 1
    },
    "status": {
        "code": 200,
        "errorType": "success"
    },
    "sessionId": "1509314271837"
}

尽管这不是文档的建议,但我发现了一个似乎正确的解决方法。

由于似乎没有注册任何语音输入,看起来它对于后备 Intent 是有意义的。由于除默认 Intents 之外的 Fallback Intents 需要一个上下文,而不仅仅是一个事件,而且看起来 actions_intent_cancel 上下文已创建,使用它似乎是合理的。

此后备意图可能如下所示:

除了documentation中的步骤外,我发现我必须告诉模拟器更新到最新版本!

这是我的视频,概述了我采取的步骤。 https://www.youtube.com/watch?v=ZvZDokjhUIY