Как я могу запросить местоположение пользователя в API.ai?

Я создаю агент с помощью api.ai и использую PHP-скрипт в качестве веб-перехватчика. В документации не разъясняется, как это сделать, но я Я хочу запросить разрешение на грубое местоположение пользователя, чтобы ему не пришлось указывать свое местоположение для запросов.

Я попытался повторить JSON, который они упоминают, и вставить его в качестве пользовательской полезной нагрузки для намерения приветствия по умолчанию, но ни один из них, похоже, не запрашивает у меня разрешение на использование моего местоположения.

Как мне спросить у пользователя разрешение узнать его местоположение?

РЕДАКТИРОВАТЬ: Если я настрою свой PHP-скрипт, чтобы он отвечал на intent.welcome следующим JSON:

{
    "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. Это нормально?»

Однако, если я говорю «да», приложение продолжает спрашивать такие вещи, как «Извините, не могли бы вы сказать это еще раз?», Поэтому я не могу заставить его что-либо сделать.


person Grayda    schedule 29.07.2017    source источник


Ответы (1)


Вам нужно создать новое намерение с событием, установленным на actions_intent_PERMISSION. (См. Изображение ниже.)

Когда это событие запускается, ваш веб-перехватчик будет вызываться с полем JSON originalRequest.data.device.location в теле запроса, заполненным запрошенной вами информацией о местоположении.

введите описание изображения здесь

person Prisoner    schedule 30.07.2017
comment
Ах, вот чего не хватало! Я попробовал actions.intent.PERMISSION, но он сказал мне, что имя события недействительно. Я также не видел его в автозаполнении, поэтому не был уверен, действительно ли он действителен или нет. Спасибо! - person Grayda; 30.07.2017