Google Drive Activities
Google Drive Activities
Sección titulada «Google Drive Activities»Versión: 1.0.5 · ID: zoan-packages-googledrive · Autor: Zoan Software
El paquete Google Drive sube, descarga, busca y organiza archivos y carpetas de Drive directamente por su API, sin abrir el navegador: archivar los reportes que genera el robot, recoger los documentos que deja un equipo en una carpeta o compartir un entregable con un cliente.
La autenticación
Sección titulada «La autenticación»Todo empieza con Google Drive — Connect, que admite dos modos en authType:
| Modo | Qué necesitas | Cuándo conviene |
|---|---|---|
oauth (por defecto) | Una conexión OAuth de Google de Zoan Cloud autorizada con el permiso de Drive (https://www.googleapis.com/auth/drive). Se pasa en credential como credential("nombre-clave"); Zoan Cloud renueva el token solo. | El robot trabaja con el Drive de una persona o de una cuenta del equipo. |
service-account | Una llave de service account (JSON completo) guardada como credencial, en serviceAccount. Sin impersonateUser, la service account solo ve lo que se ha compartido con su email; con impersonateUser (domain-wide delegation) trabaja en el Drive de ese usuario del Workspace. | Ejecuciones desatendidas sin consentimiento de una persona. |
Coloca las demás actividades dentro del body de Connect para que hereden la sesión (ZoanGoogleDriveSession) y esta se cierre sola al terminar.
Todo se identifica por ID
Sección titulada «Todo se identifica por ID»Drive no trabaja con rutas: cada archivo y carpeta tiene un ID (la parte final de su URL, drive.google.com/drive/folders/{ID}). Obtén los IDs con List files, Create folder o Upload, y pásalos a las demás actividades. root es el alias de la raíz de Mi unidad.
Las actividades trabajan con Mi unidad y con lo compartido contigo. Los elementos de unidades compartidas (shared drives) no están a su alcance.
Metadatos de un archivo
Sección titulada «Metadatos de un archivo»Upload, List files, Get info, Create folder, Copy, Move y Rename devuelven cada archivo o carpeta como un Dictionary con estas claves:
| Clave | Tipo | Contenido |
|---|---|---|
id | string | ID del archivo o carpeta. |
name | string | Nombre, con extensión si la tiene. |
mimeType | string | Tipo de contenido, p. ej. application/pdf. Las carpetas son application/vnd.google-apps.folder y los documentos nativos de Google empiezan por application/vnd.google-apps. |
isFolder | bool | true si es una carpeta. |
size | long | Tamaño en bytes. Nulo para carpetas y documentos nativos de Google (Docs, Sheets, Slides). |
parents | List | IDs de las carpetas que lo contienen. Puede ser nulo en elementos compartidos contigo que no están en tu unidad. |
modifiedTime | string | Última modificación, ISO 8601 con desfase (p. ej. 2026-06-15T14:30:00.0000000+00:00). |
createdTime | string | Fecha de creación, mismo formato. |
webViewLink | string | Enlace para abrirlo en el navegador. |
trashed | bool | true si está en la papelera. |
Actividades
Sección titulada «Actividades»| Actividad | Tipo | Salida | Descripción |
|---|---|---|---|
| Google Drive — Connect | googledrive-connect | ZoanGoogleDriveSession | Abre una sesión autenticada con Google Drive |
| Google Drive — Upload | googledrive-upload | Dictionary<string,object> | Sube un archivo local a Google Drive |
| Google Drive — Download | googledrive-download | string | Descarga un archivo de Google Drive |
| Google Drive — List files | googledrive-list | List<Dictionary<string,object>> | Lista o busca archivos y carpetas |
| Google Drive — Get info | googledrive-get-info | Dictionary<string,object> | Obtiene los metadatos de un archivo o carpeta por su ID |
| Google Drive — Create folder | googledrive-create-folder | Dictionary<string,object> | Crea una carpeta en Google Drive |
| Google Drive — Copy | googledrive-copy | Dictionary<string,object> | Copia un archivo en Google Drive |
| Google Drive — Move | googledrive-move | Dictionary<string,object> | Mueve un archivo o carpeta a otra carpeta |
| Google Drive — Rename | googledrive-rename | Dictionary<string,object> | Cambia el nombre de un archivo o carpeta |
| Google Drive — Share | googledrive-share | Dictionary<string,object> | Comparte un archivo o carpeta otorgando un permiso |
| Google Drive — Delete | googledrive-delete | — | Mueve un archivo o carpeta a la papelera (o lo elimina permanentemente) |
| Google Drive — Close | googledrive-close | — | Cierra una sesión de Google Drive |
Errores de la API de Google
Sección titulada «Errores de la API de Google»Cuando Google rechaza una llamada, la actividad falla con un error de tipo GoogleApiException cuyo mensaje empieza por The service drive has thrown an exception. HttpStatusCode is … seguido del texto de Google (siempre en inglés: lo envía Google):
| Código | Causa habitual | Qué hacer |
|---|---|---|
NotFound (File not found: …) | El ID no existe, está en una unidad compartida o la cuenta no tiene acceso a él. | Comprueba el ID con List files desde la misma cuenta. |
Forbidden | La cuenta solo tiene permiso de lectura o comentario sobre el elemento, la conexión no incluye el permiso de Drive, o se superó una cuota. | Pide permiso de edición sobre el elemento o reautoriza la conexión con el permiso de Drive. |
BadRequest | Parámetro rechazado, por ejemplo una query con sintaxis inválida. | Revisa la consulta con la sintaxis de búsqueda de Drive. |
Unauthorized | El token ya no es válido (acceso revocado, conexión expirada). | Reconectar la conexión en Zoan Cloud. |
TooManyRequests | Se superó la cuota de solicitudes por minuto de Google. | Envuelve la actividad en Retry con espera. |
Captura cualquiera de ellos con Try / Catch; error.Type vale GoogleApiException.