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

How can I request the user's location in API.ai?

我正在使用 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"]
                }
            }
        }
    }
}

应用询问我"To provide an accurate experience, , I'll just need to get your street address from Google. Is that ok?"

但是,如果我说 "yes",那么该应用程序会一直询问 "Sorry, could you say that again?" 之类的内容,因此我实际上无法让它执行任何操作。

您需要创建一个事件设置为 actions_intent_PERMISSION 的新 Intent。 (见下图。)

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