【问题标题】:How can I request the user's location in API.ai?如何在 API.ai 中请求用户的位置?
【发布时间】:2017-07-30 20:26:04
【问题描述】:

我正在使用 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 获取您的街道地址。可以吗?”

但是,如果我说“是”,那么应用会不断询问“抱歉,你能再说一遍吗?”之类的问题,所以我实际上无法让它做任何事情。

【问题讨论】:

    标签: dialogflow-es actions-on-google


    【解决方案1】:

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

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

    【讨论】:

    • 啊,这就是缺少的东西!我试过actions.intent.PERMISSION,但它告诉我事件名称无效。我也没有在自动完成中看到它,所以我不确定它是否有效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2015-04-02
    • 2015-02-02
    • 1970-01-01
    相关资源
    最近更新 更多