Desarrollar código en la plataforma
En esta sección verás todo lo relacionado a acciones de código y cómo implementarlas.
Características de código
Soporta Node.js v8.0, junto a la lista de libraries abajo:
Input de Acción de Cliente
Cuando el código fue disparado, toda información que tenemos del usuario, conversaciones y configuraciones generales serán provistas. La json abajo describe el input que una Cloud Function podrá usar.
El objeto context
Un objeto solamente lectura tiene información relevante que una acción de código puede requerir. Esto proporciona:
userData: toda información referente a un usuario, incluyendo tags y variables (si hubiera);
message: información referente al último mensaje del usuario;
params: parámetros opcionales que pueden ser enviados por una intención.
Por ejemplo:
El objeto user
Este objeto permite leer y escribir variables que persistirán en el usuario. Es muy útil para guardar datos relacionados con el usuario.
Ten presente que los valores tendrán que ser de tipo string
Para leer un valor:
user.get('valueKey')
=> devolverá una string con un valor o nulaPara escribir un valor:
user.set('valueKey', 'value')
Por ejemplo:
El valor neverWasHere será true para siempre, o hasta cuando otra acción de cliente configure un valor diferente.
En la sección de configuración de variables se puede cambiar el tipo de la variable y si es visible a los agentes que atienden conversaciones.
También, es posible que la variable expire con la sesión luego de un periodo de inactividad.
Utilizar entidades (entityLoader)
Cuando se haga upload de un archivo cvs en menu "Entidades" de la plataforma, las Acciones de Cliente tendrán acceso a él. Una lista guardada podrá ser filtrada.
El objeto connectRedis
Una instancia db instance está disponible para ser utilizada con Acciones de Clientes. Podrá:
Soporte completo a redes será proporcionado. De una mirada en el node oficial: [redis library](https://github.com/NodeRedis/node_redis)
Resultado de una Acción de Cliente
Cualquier resultado adicional que una Acción de Cliente quiera crear, precisa ser realizado usando el objeto result.
Para decir algo a un usuario usando texto:
result.text('a message')
Para mostrar una imagen a un usuario:
result.image('https://example.com/image.jpg')
Para mostrar un vídeo a un usuario:
result.video('https://example.com/video.mp4')
Para enviar un archivo a un usuario:
result.image('https://example.com/myfile.doc')
Para enviar un audio a un usuario:
result.audio('https://example.com/audio.mp3')
Igualmente, es posible enviar a un usuario un texto con botones de acción.
Ir a otra intención
Es posible ejecutar una intención, después de finalizada la Acción del Cliente, de forma muy sencilla. Después de decir algo a un usuario, cambiar algún dato o modificar su estado, podrás continuar el flujo de la conversación disparando alguna intención.
Término de Acción de Cliente
result.done()
deberá ser ejecutado cuando una Acción de Cliente se dé por finalizada.
Es muy importante llamar result.done() en todo flujo que exista una Acción de Cliente, de modo de finalizar la ejecución del mismo.
El siguiente código muestra una Acción de Cliente bien implementada, con el método done() llamado en todo el flujo.
Uso de listas personalizadas (Lista JSON)
Si deseas utilizar las opciones para una pregunta que está configurada dinámicamente y que cambia con el tiempo, es posible agregar un valor a una variable especial dentro de una acción del cliente.
En el código Javascript, será necesario crear una lista de objetos, cada uno con los campos “id” y “nombre”. Puedes agregar otras claves a estos objetos, pero no es obligatorio. Mira el ejemplo:
Para utilizar esta variable en una intención, será necesario declarar que los valores válidos para la pregunta son de una Lista JSON personalizada y hacer referencia a la variable utilizada en el código.
Crear una Client Action con parametros
Se puede crear utilizando la acción “Acción del cliente con parámetros”:
O desde un código, usando un botón que llama a otra Acción del Cliente:
Para usar los parámetros enviados a Client Action:
Leer Spreadsheet de Google Drive
Para leer un spreadsheet de google drive debes:
Más información acerca de parametros de google drive
Last updated