如何在API.ai中请求用户的位置?

时间:2017-07-29 13:33:26

标签: dialogflow actions-on-google

我正在使用api.ai创建代理并使用PHP脚本作为webhook。 The documentation没有明确说明如何执行此操作,但我想要请求允许用户的粗略位置,以便他们不必提供请求的位置。

我已经尝试回应他们提到的JSON,并将其作为默认欢迎意图的自定义有效负载,但这些似乎都没有提示我允许使用我的位置。

如何让用户获得获取其位置的许可?

编辑:如果我设置我的PHP脚本以使用以下JSON响应intent.welcome

{
    "data": {
        "google": {
            "expectUserResponse": true,
            "systemIntent": {
                "intent": "actions.intent.PERMISSION",
                "data": {
                    "@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
                    "optContext": "To provide an accurate experience, ",
                    "permissions": ["DEVICE_PRECISE_LOCATION"]
                }
            }
        }
    }
}

应用程序问我“为了提供准确的体验,我只需要从Google获取您的街道地址。这样可以吗?”

然而,如果我说“是”,那么该应用程序会不断询问“对不起,你能再说一遍吗?”,所以我实际上无法做任何事情。

1 个答案:

答案 0 :(得分:3)

您需要创建一个新的Intent,并将Event设置为actions_intent_PERMISSION。 (见下图。)

当触发此事件时,将使用请求正文中的JSON originalRequest.data.device.location字段调用您的webhook,其中填写了您请求的位置信息。

enter image description here