Кликабельный ответ, такой как кнопка в Dialgflow - PullRequest
0 голосов
/ 11 ноября 2018

Я разрабатывал чат-бота для своего приложения для Android с использованием диалогового потока, и он отлично работает. Но теперь у меня есть требование получить кликабельный ответ от моего шабота. Например, предположим, что пользователь приложения запрашивает определенное местоположение. Я хочу, чтобы чат-диалог Dialogflow возвращал кнопку или ссылку в качестве ответа, чтобы пользователь мог нажать на нее и перенаправить на карты Google.

Я прошел много уроков, блогов и документов, но так и не смог найти удовлетворительного ответа. Если бы вы могли помочь мне с примером кода, это было бы очень полезно.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Если вы используете Dialogflow для интеграции с собственной системой (в отличие от чего-то вроде Facebook Messenger, Действия в Google или других бот-платформ) с помощью API Detect Intent, то вы можете включить любые данные в * 1001.*payload объект вашего ответа на веб-крючок.Эта информация возвращается вам в ответ на ваш запрос «Определить намерение» в теле ответа в объекте queryResult.webhookPayload.

Здесь вы можете включить любую информациюВы хотите, и сделайте это так, как хотите.

0 голосов
/ 11 ноября 2018

Возможно, вам придется использовать Google Maps URLs для этой цели. Это универсальное кроссплатформенное решение.

Выполните следующие действия:

На основе ответов пользователя закодируйте URL-адрес карты, как показано в примерах здесь https://developers.google.com/maps/documentation/urls/guide

Например, рассмотрим URL из руководства выше

https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY

Тогда используйте Кнопки в основной карте следующим образом

app.intent('demo', (conv, params) => {
    // Create a basic card with the URL 
    conv.ask(new BasicCard({
      text: `This is a basic card with Map Response.`,
      subtitle: 'This is a subtitle',
      title: 'Title: Open Map',
      buttons: new Button({
        title: 'Open Map as per URL',
        url: 'https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY',
      })
    }));
}

Вы также можете использовать другие Ответы (например, linkOutSuggestion), как описано здесь: https://developers.google.com/actions/assistant/responses

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...