
Hace poco obtuve dos certificaciones de Google Cloud: Professional Cloud Architect y Professional Data Engineer. El equipo de Google Tel-Aviv tuvo un gran gesto y me regaló un dispositivo Google Home como muestra de agradecimiento (¡gracias Nir Atias e Ifat Yanai!)
Ahora que tengo mi juguete nuevo, ¡toca divertirse un rato!
Mis hijos van a una escuela al otro lado de la ciudad y se mueven en autobús escolar, así que quería saber a qué hora iban a llegar a casa sin tener que sacar el teléfono y abrir la app Find my iPhone. Además, andaba buscando una excusa para programar algunas acciones para Google Assistant ;-)
Decidí que mi estimador de ETA fuera 100% serverless. Opté por Cloud Functions (¡que ahora se puede escribir en Python!) como endpoint, Cloud Datastore como capa de almacenamiento persistente y Cloud KMS como mecanismo seguro para guardar los secrets.
Cuando un usuario activa la acción (llamada school bus), se le pregunta el nombre de su hijo (por si, como yo, tienes más de uno). Acto seguido se invoca la cloud function.
La cloud function obtiene de Datastore todos los datos necesarios y consulta la ubicación mediante la API de Find My iPhone.
https://gist.github.com/avivl/183d27f20cc1d8742f9f74853299790f
Con la ubicación en mano, se hace una llamada a la API de Google Maps Directions para obtener la ETA. Esa ETA se devuelve a Google Assistant, que la reproduce o la muestra al usuario.
https://gist.github.com/avivl/f5a156eaf87d6a1c68b7b7a908777bdb
Fue un proyecto divertido y con valor agregado para mí. El código completo está disponible en Github.
¿Quieres más historias? Pásate por nuestro blog o sigue a Aviv en Twitter.