Cómo crear acciones para Asistente de Google con Actions Builder (nivel 2)

1. Descripción general

La plataforma para desarrolladores de Asistente de Google te permite crear software que extienden la funcionalidad de este asistente personal virtual en más de 1,000 millones de dispositivos, como bocinas inteligentes, teléfonos, vehículos, TVs, auriculares y muchos más. Los usuarios interactúan con Asistente mediante conversaciones para completar tareas, como comprar alimentos o reservar un viaje. Como desarrollador, puedes usar la plataforma para desarrolladores de Asistente a fin de crear y administrar fácilmente experiencias de conversación interesantes y eficaces entre los usuarios y tu propio servicio externo.

Este codelab abarca conceptos de nivel intermedio para desarrollar con Asistente de Google y se basa en la acción creada en el codelab de nivel 1. Te recomendamos que completes el codelab de nivel 1 antes de comenzar este.

La acción que compilarás en ese codelab les dice a los usuarios la fortuna para su misión en una tierra mítica, Gryffinberg, en función de la ayuda que elijan.

Qué crearás

En este codelab, compilarás una acción conversacional sofisticada que realiza lo siguiente:

  • Recopila datos del usuario y, según el valor, modifica los mensajes conversacionales.
  • Responde con preguntas de seguimiento para continuar con la conversación.
  • Crea un bucle de juego para que un usuario pueda interactuar con la acción nuevamente después de recibir la fortuna.

Antes de comenzar a compilar, puedes interactuar con la acción publicada en tu dispositivo compatible con el Asistente de Google cuando dices "Hey Google, habla con Fate y Fortune". La ruta predeterminada a través de esta acción para un usuario recurrente se ve en la siguiente interacción:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

Qué aprenderás

  • Cómo usar espacios para recopilar datos del usuario
  • Cómo usar condiciones para agregar lógica a una escena
  • Cómo agregar un bucle de juego
  • Cómo agregar una ruta de acceso de asistencia

Requisitos

Estos son algunos requisitos del codelab:

Conocimientos de JavaScript (ES6), (aunque no es obligatorio) para comprender el código de entregas de este codelab

2. Continúa con la compilación de la interfaz de conversación

En el primer codelab, creaste una acción de conversación simple con una sola escena, Start.

En este codelab, extenderás la conversación de tu Acción. En las siguientes secciones, configurarás tu acción para que realice lo siguiente:

  • Pasar a una nueva escena de Fortune cuando el usuario quiera escuchar su fortuna
  • Preguntar al usuario qué ayuda desea elegir para su viaje
  • Ofrecer una predicción personalizada según la elección del usuario

Crea la escena Fortune

En esta sección, crearás la escena Fortune y definirás cómo el usuario llegará a ella durante la conversación.

Para crear una nueva escena llamada Fortune, sigue estos pasos:

  1. Abre el proyecto de acciones del codelab de nivel 1.
  2. Haz clic en Develop, en la barra de navegación.
  3. En Scenes, haz clic en la escena Start.
  4. Haz clic en el intent yes (el cuadro When yes is matched) para abrir las opciones.
  5. Borra Send prompts para quitar la solicitud.
  6. En la sección Transition, haz clic en el menú desplegable, haz clic en el cuadro de texto y escribe Fortune.
  7. Haz clic en Agregar. Esto creará una nueva escena llamada Fortune. También agrega una transición de la escena Start a la escena Fortune cuando el usuario quiera escuchar su fortuna.

56682a0c7459b98c.png

Define la lógica de conversación para la escena Fortune.

En este codelab, configurarás tu escena Fortune para preguntarle al usuario: "What do you choose to help you on your quest (¿Qué eliges como ayuda para tu aventura?): dragon (dragón), translator (traductor) or a compass (brújula)?". Puedes usar una función llamada slot filling (relleno de espacios) para recopilar la información necesaria del usuario antes de continuar.

Tu acción proporciona fortunas para tres tipos de ayuda: dragon (dragón), translator (traductor) o compass (brújula). Para configurar tu acción a fin de que identifique estas tres opciones en la entrada de un usuario, debes crear un type.

Puedes usar tipos dentro de la etapa de relleno del espacio de una escena para definir la información que desees obtener del usuario. Cuando el motor de CLN detecta una coincidencia para el espacio en la entrada del usuario, extrae el espacio como parámetro escrito para que puedas realizar la lógica correspondiente en una escena.

Crea el tipo available_options

En esta sección, crearás un nuevo tipo llamado available_options, que especifica las tres opciones (dragon, translator o compass) que los usuarios pueden elegir como respuesta al mensaje. También puedes definir algunos sinónimos para estas opciones en caso de que un usuario diga algo similar. En una sección posterior, agregarás el tipo available_options a un espacio para especificar que deseas obtener la elección del usuario.

Para crear el tipo available_options, sigue estos pasos:

  1. En la barra de navegación, haz clic en Types.
  2. Haz clic en el signo + (más), escribe available_options y presiona Enter.
  3. Haz clic en available_options para abrir las opciones.

Los tipos se configuran como pares clave-valor de información, en los que la clave es el nombre del tipo y los valores son sinónimos de esa clave. Cuando defines la clave, esta se agrega automáticamente como un valor.

Para agregar las tres opciones que el usuario puede elegir, sigue los pasos que se detallan a continuación:

  1. Desplázate hasta la sección Agregar entradas.
  2. En el campo New entry, escribe dragon y presiona Enter. Esta acción crea una clave dragon.
  3. Escribe hydra en el campo Add values y presiona Enter para agregarlo como valor (sinónimo). Luego, repite este paso para el valor lizard.
  4. Agrega el resto de las claves y los valores correspondientes:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. Haz clic en Guardar.

Tu acción ahora entiende que el available_options puede ser dragon (dragón), translator (traductor) y compass (brújula), y también puede reconocer algunos sinónimos correspondientes.

Configura el relleno de espacios

Luego, debes configurar el relleno de espacios en la escena Fortune. Para configurar la lógica de relleno de espacios, haz lo siguiente:

  1. En la barra de navegación, en Scenes, haz clic en Fortune.
  2. En la escena Fortune, haz clic en + (signo más) para Slot filling.
  3. En el campo Enter slot name, agrega chosenOptions como nombre del espacio.
  4. En la lista desplegable Select type, selecciona available_options como el tipo de espacio.
  5. Selecciona la casilla de verificación This slot is required.

a461b906476e244.png

  1. Selecciona Send prompts y agrega los siguientes mensajes y chips de sugerencia:
candidates:
  - first_simple:
      variants:
        - speech: >-
            What do you choose to help you on your quest, a dragon, a
            translator, or a compass?
    suggestions:
      - title: 'Dragon'
      - title: 'Translator'
      - title: 'Compass'
  1. Haz clic en Guardar.

De esta manera, habrás agregado el tipo de available_options al espacio, que le indica a tu acción qué información debe recopilar del usuario (la ayuda de su preferencia) antes de continuar. También habrás configurado un mensaje dentro del espacio, que se agrega a la cola de mensajes cuando el usuario llega a la etapa de relleno de la escena.

Ten en cuenta que, cuando le asignaste el nombre chosenOptions al espacio, el campo Customize slot value writeback se actualiza con el mismo nombre ($session.params.chosenOptions). Puedes acceder a este parámetro mediante ese nombre en Actions Builder y en tu entrega a través de la biblioteca cliente.

Configura la condición scene.slots.status == "FINAL"

Cuando agregas un espacio, la condición scene.slots.status == "FINAL" se agrega automáticamente a la lista de condiciones.

La condición scene.slots.status == "FINAL" verifica que se complete el llenado de espacios. Cuando se rellenan todos los espacios, la condición puede activar un webhook, pasar a una escena nueva o agregar mensajes a la cola.

En esta sección, configurarás scene.slots.status == "FINAL" para que se agregue un mensaje a la cola de mensajes cuando se llenen los espacios.

Para agregar este mensaje a la condición FINAL, sigue estos pasos:

  1. Haz clic en scene.slots.status == "FINAL" para abrir la ventana de opciones.
  2. Selecciona Send prompts y agrega el siguiente mensaje:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. Haz clic en Guardar.

Prueba tu acción en el simulador

En este punto, habrás definido las opciones que el usuario debería seleccionar para rellenar el espacio. Después de obtener esta información del usuario, tu acción debe proporcionar un mensaje que haga referencia a la opción específica que este eligió.

Para probar tu acción, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app o haz clic en la opción, en el campo Input, y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. (También puedes hacer clic en el chip de sugerencias Yes).

a899d45c542668f6.png

  1. Escribe o di dragon, o bien haz clic en la opción. Deberías recibir el mensaje "You picked dragon" (seleccionaste el dragón).

En la próxima sección, podrás personalizar los mensajes para cada ayuda que el usuario pueda seleccionar.

Personaliza los mensajes con condiciones

En esta sección, agregarás condiciones para cada opción que el usuario pueda elegir, así como un mensaje personalizado para cada condición.

Personaliza la fortuna de dragon

Para actualizar la condición y personalizar el mensaje cuando un usuario seleccione "dragon" (dragón), sigue estos pasos:

  1. Haz clic en Develop, en la barra de navegación.
  2. En la barra de navegación, haz clic en la escena Fortune.
  3. Haz clic en scene.slots.status == "FINAL" para abrir la ventana de opciones.
  4. Actualiza la declaración de condición a scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon".
  5. Selecciona Send prompts.
  6. Actualiza el mensaje con la siguiente fortuna en el editor de código:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The people of Gryffinberg will be awestruck by the beauty and power
            of the ancient dragon. Much to your dismay, the townspeople fall
            into dispute over who will receive the honor of riding the dragon
            first. You return home from your quest without everlasting glory or
            a dragon.
  1. Haz clic en Guardar.

d31767232ad908bd.png

Ahora, cuando un usuario diga "dragon" o algo similar, tu acción proporcionará una predicción basada en esa selección. A continuación, agrega las dos selecciones restantes.

Personaliza la fortuna de translator

Para agregar la condición y personalizar el mensaje cuando un usuario seleccione "translator" (traductor), sigue estos pasos:

  1. Haz clic en el signo + (signo más) junto a Condition.
  2. Agrega scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" al campo else if.
  3. Selecciona Send prompts.
  4. Agrega el siguiente mensaje en el editor de código:
candidates:
  - first_simple:
      variants:
        - speech: >-
            With the help of the translator, the rival factions in Gryffinberg
            are finally able to communicate with each other and resolve their
            disputes. You will complete your quest to restore peace in the town.
            The translator will be used on many subsequent journeys across the
            earth. After its work is done, it retires honorably to a premier
            location in the Gryffinberg History Museum.
  1. Haz clic en Guardar.

c1af65e70dbf3dfe.png

Personaliza la fortuna de compass

Para agregar la condición y personalizar el mensaje cuando un usuario seleccione "compass" (brújula), sigue estos pasos:

  1. Haz clic en el signo + (signo más) junto a Condition.
  2. Agrega scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" al cuadro de texto else if.
  3. Selecciona Send prompts.
  4. Agrega el siguiente mensaje en el editor de código:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The compass will help you find the mystical and ancient Library of
            Gryffinberg. Among its infinite stacks of dusty books, you find one
            entitled "Wisdom of the Ages". By the time you've read the
            50,000-page tome, the townspeople have forgotten their problems. You
            will write a second edition of "Wisdom of the Ages", but have
            limited commercial success.
  1. Haz clic en Guardar.

Prueba tu acción en el simulador

En este punto, tu acción debería mostrar una fortuna personalizada para el usuario según la opción que este seleccione.

Para probar tu acción, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app en el campo Input y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. También puedes hacer clic en el chip de sugerencia Yes.
  4. Escribe o di Translator, o bien haz clic en la opción.

29e17f950bd0dd71.png

Deberías obtener la fortuna correspondiente para la opción "translator" (traductor).

3. Agrega un bucle de juego

En esta sección, configurarás tu acción para que el usuario pueda seleccionar otra opción y escuchar una fortuna diferente después de hacerlo. Este cambio es similar al mensaje "Do you want to play again? (¿quieres volver a jugar?)" que se muestra al final de un juego. Para compilar este bucle, puedes volver a usar los intents yes y no creados anteriormente y agregarlos a una nueva escena llamada Again.

Crea la escena Again

En esta sección, crearás una nueva escena Again y agregarás un mensaje en el que se le pregunte al usuario si desea seleccionar una opción diferente.

Para crear la escena Again, sigue estos pasos:

  1. Haz clic en Develop, en la barra de navegación.
  2. Haz clic en el signo + (signo más) en Escenas.
  3. Escribe Again y presiona Enter.
  4. Haz clic en la escena Again en la barra de navegación.
  5. Haz clic en el signo + (signo más) junto a On enter.
  6. Selecciona Send prompts y agrega los siguientes mensajes de solicitud y sugerencias:
candidates:
  - first_simple:
      variants:
        - speech: >-
            That is what I see for you. Would you like to choose a different option and
            explore another future?
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. Haz clic en Guardar.

Agrega la transición de Fortune a la escena Again

Después de que el usuario reciba su fortuna, la conversación deberá pasar a la nueva escena Again.

Para agregar una transición de la escena Fortune a la escena Again, sigue estos pasos:

  1. Haz clic en la escena Fortune.
  2. Haz clic en la primera condición (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") para abrir la ventana de opciones.
  3. Desplázate y selecciona Again en Transición.
  4. Haz clic en Guardar.
  5. Haz clic en la segunda condición para abrir la ventana de opciones.
  6. Desplázate y selecciona Again en Transición.
  7. Haz clic en Guardar.
  8. Haz clic en la tercera condición para abrir la ventana de opciones.
  9. Desplázate y selecciona Again en Transición.
  10. Haz clic en Guardar.

Prueba tu acción en el simulador

En este punto, tu acción debería proporcionar al usuario el siguiente mensaje después de que reciba su fortuna: "That is what I see for you. Would you like to choose a different option and explore another future? (Eso es lo que veo para ti. ¿Te gustaría elegir una opción diferente y explorar otro futuro?)".

Para probar tu acción, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app en el campo Input y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. También puedes hacer clic en el chip de sugerencia Yes.
  4. Escribe o di dragon, o bien haz clic en la opción.

b299e9fed9aedb69.png

Deberías recibir la fortuna para la opción dragon (dragón) y el mensaje Again.

Agrega intents y realiza la transición a la escena Again

En esta sección, agregarás intents yes y no a la escena Again para que tu acción comprenda si el usuario desea seleccionar una nueva opción o no. También debes agregar las transiciones adecuadas para los intents yes y no. El intent yes pasa a la escena Fortune, mientras que no pasa a la escena del sistema End conversation.

Para agregar intents y transiciones a la escena Again, sigue estos pasos:

  1. Haz clic en Develop, en la barra de navegación.
  2. Haz clic en la escena Again.
  3. Haz clic en el signo + (signo más) junto a User intent handling.
  4. Selecciona yes en el menú desplegable de intents.
  5. Selecciona Fortune en el menú desplegable Transition.
  6. Haz clic en Guardar.

c2efba35ea881b0d.png

  1. Haz clic en el signo + (signo más) junto a User intent handling.
  2. Selecciona no en el menú desplegable de intents.
  3. Selecciona End conversation en el menú desplegable Transition.
  4. Selecciona Send prompts y agrega el siguiente mensaje en el editor de código:
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. Haz clic en Guardar.

Prueba tu acción en el simulador

Ahora tu acción debería comprender si el usuario desea seleccionar una opción nueva o finalizar la conversación.

Para probar el intent yes, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app en el campo Input y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. También puedes hacer clic en el chip de sugerencia Yes.
  4. Escribe o di una opción, o bien haz clic en ella.
  5. Escribe Yes en el campo Input y presiona Enter.

5d0690332efe2e29.png

Deberías recibir el mensaje: "What do you choose to help you on your quest, a dragon, a translator, or a compass? (¿Qué eliges para ayudarte en tu misión: un dragón, un traductor o una brújula?)".

Para probar el intent no, sigue estos pasos:

  1. Escribe o di una opción, o bien haz clic en ella.
  2. Escribe No en el campo de entrada y presiona Enter.

Deberías recibir el mensaje End conversation: "Me gustaría que te complazca tu elección. (Me gusta que te complazca tu elección. Mucha suerte en tu misión. Que la suerte te acompañe)".

4. Agrega una ruta de asistencia

Así, habrás creado la ruta principal que realizarán la mayoría de los usuarios en tu acción. Sin embargo, el usuario podría responder al mensaje de la escena Fortune,¿qué eliges para ayudarte en tu misión: un dragón, un traductor o una brújula? con una opción distinta de las disponibles.

En esta sección, configurarás tu acción para que entienda cuándo un usuario elige (magia) y dinero, y le pida al usuario que seleccione una de las tres opciones originales cuando elija una de estas opciones. Para configurar esta lógica, debes crear una nueva type que contenga estas otras opciones y un nuevo intent, other_option, que se detecte cuando un usuario diga una de estas opciones. También debes anotar frases de entrenamiento dentro del intent other_option para identificar y extraer parámetros de intent.

Cuando el motor de procesamiento de lenguaje natural (CLN) de Asistente detecta una coincidencia de parámetros en la entrada del usuario, extrae el valor como parámetro escrito para que puedas realizar la lógica con una escena. En este codelab, configurarás tu acción para extraer la ayuda que el usuario elige y hacer referencia a esa opción en un mensaje.

Crea el tipo unavailable_options

Ahora puedes crear un tipo unavailable_options que contenga una variedad de opciones para que tu acción pueda identificar esos datos en una entrada del usuario.

Para crear el tipo unavailable_options, sigue estos pasos:

  1. Haz clic en Develop, en la barra de navegación.
  2. Haz clic en el signo + (signo más) en Types.
  3. Escribe unavailable_options y presiona Enter.
  4. Haz clic en unavailable_options para abrir las opciones.
  5. Ingresa las siguientes entradas y los valores correspondientes en la sección Add entries:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

La tabla de pares clave-valor debería tener el siguiente aspecto:

c9e119e0f5fb2a47.png

  1. Haz clic en Guardar.

Crea el intent other_option

A continuación, crearás un intent llamado other_option y agregarás frases de entrenamiento que incluyan las opciones del tipo unavailable_options. La coincidencia con este intent se establece cuando el usuario selecciona una opción incluida en el tipo unavailable_options.

Para crear y configurar el intent other_option, sigue estos pasos:

  1. Haga clic en el signo + (signo más), en Intents personalizados.
  2. Escribe other_option y presiona Enter.
  3. Haz clic en other_option para abrir la ventana.
  4. Agrega las siguientes frases de entrenamiento y presiona Enter después de cada una:
  • I want to use spells
  • I really really want to use a phone
  • magic!
  • cash
  • I want to ride a horse
  1. En la sección Add intent parameters, actualiza el nombre del parámetro a chosenUnavailableOption.
  2. Haz clic en Guardar.

A medida que ingresas las frases de entrenamiento, Actions Builder reconoce las palabras spells, phone, magic, cash y horse del tipo unavailable_options y destaca (anota) automáticamente esas palabras. Luego, agrega automáticamente un parámetro de intent en la sección Add intent parameters, como se muestra en la siguiente imagen.

El parámetro de intent te permite extraer el nombre de la opción y usarla en un mensaje.

df61d4489f0910.png

Agrega el intent other_option a la escena Fortune

Ahora tienes un intent, other_option, que puede controlar la acción de un usuario de especificar una opción que no se encuentre entre las originales. En esta sección, agregarás el intent other_option a la escena Fortune. Puedes usar el parámetro de intent para personalizar el mensaje según las entradas del usuario.

Para agregar el intent other_option a la escena Fortune, sigue estos pasos:

  1. Haz clic en la escena Fortune.
  2. Haz clic en el signo + (signo más) junto a User intent handling.
  3. Selecciona other_option en el menú desplegable del intent.
  4. Selecciona Send prompts y agrega el siguiente mensaje:
candidates:
  - first_simple:
      variants:
        - speech: >-
            I have seen the future and a $intent.params.chosenUnavailableOption.original
            will not aid you on your journey. 

La expresión $intent.params.chosenUnavailableOption hace referencia al objeto del parámetro del intent y $intent.params.chosenUnavailableOption.original se refiere al valor de ese objeto. original property hace referencia a la entrada sin procesar que especifica el usuario.

  1. Haz clic en Guardar.

4bab1efbe21056aa.png

Cuando un usuario dice una opción que aparece en el tipo unavailable_options durante la escena Fortune, se produce una coincidencia con el intent other_option y este agrega un mensaje a la cola de mensajes. Debido a que no hay una transición especificada, el bucle de ejecución de escena continúa reevaluando la etapa de condiciones. Luego, el espacio chosenOptions agrega el mensaje a la lista de mensajes de la cola, y esta se entrega al usuario.

Prueba tu acción en el simulador

Tu acción debería responder de manera apropiada cuando un usuario seleccione una de las opciones enumeradas en el tipo unavailable_options y especificar la ayuda que seleccionó el usuario. Luego, la acción debe solicitarle al usuario que elija una de las opciones originales: dragon (dragón), translator (traductor) o compass (brújula).

Para probar tu acción en el simulador, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app en el campo Input y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. También puedes hacer clic en el chip de sugerencia Yes.
  4. Escribe magic en el campo Input y presiona Enter.

3a42c33eca435f32.png

Tal vez notes que el mensaje no parece correcto cuando el usuario elige "magic" (magia) debido al artículo "a" (una) que se encuentra antes de la opción. Resolveremos este problema en las siguientes secciones.

Agrega el controlador unavailable_options

Para colocar el artículo "a" (un/una) antes de las opciones adecuadas del tipo unavailable_options, puedes configurar un controlador de eventos en tu lógica de entrega para comprobar si la opción que elige el usuario necesita estar precedida por un artículo "a". En primer lugar, debes configurar tu acción para llamar al controlador en la consola.

Para agregar el controlador unavailable_options, sigue estos pasos:

  1. Haz clic en Develop, en la barra de navegación.
  2. Haz clic en la escena Fortune.
  3. En User intent handling, haz clic en When other_option is matched para abrir la ventana.
  4. Desmarca la casilla de verificación Send prompts.
  5. Seleccione la casilla de verificación Call your webhook.
  6. Ingresa unavailable_options en el cuadro de texto del controlador del evento.

52a0fba115f1b377.png

  1. Haz clic en Save.

Actualiza y, luego, implementa la entrega

Ahora que configuraste tu acción para que llame al controlador de eventos unavailable_options, puedes actualizar el controlador en tu entrega e implementarlo.

Para actualizar la entrega, sigue estos pasos:

  1. Haz clic en Webhook, en la barra de navegación.
  2. Agrega el siguiente código al controlador greeting:
app.handle('unavailable_options', conv => {
  const option = conv.intent.params.chosenUnavailableOption.original;
  const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
  let message = 'I have seen the future and ';
  if(optionsNeedA.has(optionKey)){
    message = message + 'a ';
  }
  message = message + `${option} will not aid you on your journey. `;
  conv.add(message);
});
  1. Agrega el siguiente código a const app = conversation();:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. Haz clic en Save Fulfillment.
  2. Haz clic en Deploy Fulfillment. Cuando se complete la implementación, verás un mensaje sobre tu editor que indicará que la implementación de tu Cloud Function está actualizada.

Comprende el código

El controlador unavailable_options hace lo siguiente:

  • Obtiene datos option del objeto conv y asigna option a la propiedad original, que es la entrada sin procesar del usuario.
  • Asigna optionKey a la propiedad resolved, que es la clave para el tipo unavailable_options.
  • Verifica si optionKey es una de las opciones que necesitan un artículo "a" (un/una). Si es así, construye el mensaje con el artículo.
  • Agrega el mensaje a través de conv.add(message).

Prueba tu acción en el simulador

Tu acción ahora debería ajustar el mensaje según si la opción del usuario del tipo unavailable_options requiere un artículo "a" antepuesto.

Para probar tu acción, sigue estos pasos:

  1. En la barra de navegación, haz clic en Test.
  2. Escribe Talk to my test app o haz clic en la opción, en el campo Input, y presiona Enter.
  3. Escribe Yes en el campo Input y presiona Enter. También puedes hacer clic en el chip de sugerencia Yes.
  4. Escribe magic en el campo Input y presiona Enter.
  5. Escribe horse en el campo Input y presiona Enter.

54ee24c5c3c56e.png

Tu acción debería agregar el artículo "a" (un) antes de la opción "horse" (caballo), mientras que no debe hacerlo para la opción "magic" (magia).

Cómo limpiar tu proyecto (recomendado)

A fin de evitar incurrir en posibles cargos, te recomendamos quitar los proyectos que no quieras usar. Para borrar los proyectos que creaste en este codelab, sigue estos pasos:

  1. Si quieres borrar el proyecto de la nube y los recursos, completa los pasos indicados en la sección Cómo apagar (borrar) proyectos.
  1. Opcional: Para quitar tu proyecto de inmediato de la Consola de Actions, consulta Cómo borrar un proyecto. Si no sigues este paso, se quitará automáticamente el proyecto después de alrededor de 30 días.

5. ¡Felicitaciones!

Ya aprendiste las habilidades intermedias necesarias para crear Acciones para Asistente de Google.

Temas que se abordaron

  • Cómo desarrollar acciones conversacionales con la biblioteca de entregas de Node.js
  • Cómo usar espacios para recopilar datos del usuario
  • Cómo usar condiciones para agregar lógica a una escena
  • Cómo agregar un bucle de juego
  • Cómo agregar una ruta de acceso de asistencia

Más información

Explora estos recursos para obtener más información sobre la compilación de acciones para Asistente de Google:

Sigue a @ActionsOnGoogle en Twitter para mantenerte al tanto de los anuncios más recientes y enviar tuits a #AoGDevs para compartir tu compilación.

Encuesta de opinión

Antes de irte, completa una breve encuesta sobre tu experiencia.