Implementa entregas (Dialogflow)

Una vez que hayas compilado la entrega de webhook, impleméntala en producción y conéctala a tu acción. En los siguientes pasos, se muestra cómo configurar tu entorno a fin de implementar en Cloud Functions para Firebase para hosting de producción. Sin embargo, puedes elegir cualquier plataforma de hosting web que admita solicitudes y respuestas HTTPS para alojar tu entrega.

Si ya implementaste el webhook en una plataforma de hosting web, puedes pasar a Conecta el webhook a tu acción. Ten en cuenta que los últimos pasos del proceso que se muestran a continuación difieren en función de si usas Dialogflow o el SDK de Actions.

Implementa en Cloud Functions para Firebase

  1. Descarga y, luego, instala Node.js.
  2. Configura y, luego, inicializa Firebase CLI. Si el siguiente comando falla con un error EACCES, es posible que debas cambiar los permisos de npm.

    npm install -g firebase-tools
    
  3. Autentica la herramienta de Firebase con tu Cuenta de Google:

    firebase login
    
  4. Navega al directorio de tu proyecto de Acción y, luego, inicializa Firebase. Se te pedirá que selecciones las funciones de Firebase CLI que quieres configurar para tu proyecto de Actions. Elige Functions y otras funciones que tal vez quieras usar, como Firestore, y presiona Intro para confirmar y continuar:

    cd <cloud_function_dir>
    firebase init
    
  5. Para asociar la herramienta de Firebase con tu proyecto de acciones, selecciónalo con las teclas de flecha a fin de navegar por la lista de proyectos:

    .
  6. Después de elegir el proyecto, la herramienta de Firebase inicia la configuración de Functions y te pregunta qué lenguaje quieres usar. Selecciona con las teclas de flecha y presiona Intro para continuar.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. Elige si deseas usar ESLint para detectar posibles errores y aplicar la escritura de estilo Y o N:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Para obtener las dependencias del proyecto, escribe Y en la instrucción:

    ? Do you want to install dependencies with npm now? (Y/n)

    Una vez completada la configuración, verás un resultado similar al siguiente:

    ✔  Firebase initialization complete!
  9. Instala la dependencia actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Obtén las dependencias de entrega y, luego, implementa la función de entrega:

    npm install
    firebase deploy --only functions
    

    La implementación tarda unos minutos. Una vez que se complete, verás un resultado similar al siguiente. Necesitarás la URL de la función para ingresar en Dialogflow.

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

Conecta el webhook a tu acción

Si usas Dialogflow: en la consola de Dialogflow, ve a Entrega, activa el botón Webhook en HABILITADO y reemplaza la URL en el campo URL por la URL de la función.

Si usas el SDK de Actions: Crea un objeto dentro del objeto conversations para declarar tu entrega en el paquete de Acciones:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}