01
Resumen general
Las integraciones de Google en EduShield se dividen en dos flujos de OAuth completamente independientes: cada uno pide su propio consentimiento y guarda sus propios tokens. Conectar uno no implica conectar el otro.
Inicio de sesión con Google
Botón “Iniciar sesión con Google” en la pantalla de login. Solo lee tu correo y nombre para autenticarte.
Google Meet (Calendar API)
Crea, reagenda y elimina eventos de Calendar con un Google Meet adjunto cuando el docente programa una clase en vivo.
Tabla de scopes
| Scope | Flujo | Para qué se usa |
|---|---|---|
openid | SSO + Meet | Identificador estable de la cuenta Google (claim sub) para vincular el inicio de sesión. |
email | SSO + Meet | Confirmar el correo de la cuenta Google y mapearlo al usuario en EduShield. |
profile | SSO + Meet | Obtener el nombre visible para mostrar “Conectado como X”. |
https://www.googleapis.com/auth/calendar.events | Solo Meet | Crear, reagendar y eliminar eventos de Calendar (con conferenceData) en el calendario primario del docente. |
EduShield no solicita ningún scope sensible o restringido fuera de los listados arriba. No leemos Gmail, Drive, Contactos, ni el calendario completo. Solo usamos calendar.events (no calendar entero), de modo que el alcance se limita a eventos creados por la app.
02
Inicio de sesión con Google
EduShield usa el estándar OpenID Connect sobre OAuth 2.0 a través del proveedor oficial de NextAuth. Permite iniciar sesión con tu correo Google sin necesidad de crear una contraseña aparte.
2.1 Cómo agregar / activar
- 1En la pantalla Iniciar sesión o Crear cuenta, hacé clic en el botón Continuar con Google.
- 2Google muestra su pantalla de consentimiento con la lista de permisos solicitados (correo, nombre, foto). Hacé clic en Continuar.
- 3Google redirige a EduShield. Si tu correo ya tiene cuenta, te lleva al dashboard que corresponda según tu rol. Si no tiene cuenta, aparece la pantalla No tenés cuenta para invitarte a registrarte.
2.2 Caso de uso y prerequisitos
- Caso de uso: autenticación. Reemplaza tener que recordar una contraseña por una sola cuenta Google.
- Prerequisitos: tener un correo Google válido y verificado dentro de tu organización o cuenta personal.
- Dato técnico: EduShield habilita
allowDangerousEmailAccountLinking: trueúnicamente cuando el correo Google ya existe en EduShield (creado por invitación o registro previo). Si no existe, se rechaza el inicio de sesión y se redirige a una página informativa.
2.3 Cómo eliminar el SSO
Como SSO es solo autenticación (no almacena tokens persistentes), no aparece en la tarjeta de integraciones. Para “desinstalar”:
- 1Andá a tu Cuenta Google → Permisos de terceros.
- 2Buscá EduShield y hacé clic en Quitar acceso.
- 3A partir de ese momento, el botón “Continuar con Google” en EduShield volverá a mostrar la pantalla de consentimiento la próxima vez que lo uses.
Tu cuenta de EduShield no se borra al revocar el acceso desde Google: simplemente dejás de poder iniciar sesión por ese método. Para borrar la cuenta y todos los datos, usá Eliminar mis datos.
03
Google Meet en clases en vivo
Esta integración deja al docente programar Google Meets desde EduShield sin abrir Google Calendar. Internamente creamos eventos de Calendar con conferenceData; Google adjunta un Meet automáticamente y devuelve el link.
3.1 Cómo agregar la app
- 1Entrá a EduShield como docente y abrí Mi perfil (avatar → Mi perfil) o
/profile/me. - 2Bajá a la tarjeta Integraciones de clases en vivo y, en la fila de Google Meet, hacé clic en Conectar Google Meet.
- 3Google abre la pantalla de consentimiento listando los scopes (
openid,email,profile,calendar.events). Aceptá. - 4Google redirige a EduShield. Verás el banner de “Conexión con Google Meet exitosa”. Tu cuenta Google aparece en la tarjeta junto al estado Conectado.
access_type=offline y prompt=consent para asegurar que Google emita un refresh_token en cada conexión. Esto te permite reconectar sin perder acceso si algún día desautorizás la app desde Google.3.2 Funciones disponibles
A. Crear / programar un Google Meet
Caso de uso: el docente programa una clase del curso y EduShield agrega un Meet automáticamente con sala compartida.
Prerequisitos: tener Google Meet conectado, ser docente del curso, el curso debe estar ACTIVE.
Pasos:
- 1Abrí el curso y andá a la pestaña Clases en vivo.
- 2Hacé clic en Programar clase.
- 3Llená título, fecha, hora y duración. Asegurate de que el proveedor esté en Google Meet.
- 4Hacé clic en Guardar.
API que llamamos: POST /calendar/v3/calendars/primary/events?conferenceDataVersion=1. Scope: calendar.events.
B. Reagendar una clase ya creada
Caso de uso: cambiar la fecha o duración. EduShield mantiene el mismo evento (mismo Meet URL).
API: PATCH /calendar/v3/calendars/primary/events/{eventId}. Scope: calendar.events.
C. Eliminar la clase
Caso de uso: el docente cancela la clase. EduShield la borra de Calendar (lo cual desactiva el Meet asociado) y deja de mostrarla en el curso.
API: DELETE /calendar/v3/calendars/primary/events/{eventId}. Scope: calendar.events.
D. Recordatorios y asistentes
EduShield añade los correos de los estudiantes inscritos como attendees del evento si el docente lo pide explícitamente. Google Calendar manda el aviso por correo con el link del Meet.
3.3 Sobre las grabaciones de Meet
Google Meet guarda las grabaciones en el Drive del docente (carpeta “Meet Recordings”). EduShield no pide acceso a Drive ni al API meet.googleapis.com: cuando la clase termina, EduShield muestra un enlace al Drive del docente para que él abra la grabación allí. Esto mantiene el alcance de permisos al mínimo y evita pedirte un scope sensible adicional.
04
Cómo eliminar la app
A. Desconectar Google Meet desde EduShield
- 1Andá a Mi perfil → Integraciones de clases en vivo.
- 2En la tarjeta de Google Meet, hacé clic en Desconectar.
- 3Confirmá la acción. EduShield revoca el token (
POST https://oauth2.googleapis.com/revoke) y borra el registro de la base.
B. Desautorizar EduShield desde Google
- 1
- 2Buscá EduShield y hacé clic en Quitar acceso.
- 3Google invalida tanto el SSO como el OAuth de Calendar. La próxima vez que iniciés sesión con Google o conectés Meet, se mostrará la pantalla de consentimiento de nuevo.
Implicaciones de la des-autorización
- EduShield deja de poder crear, modificar o eliminar eventos en tu Google Calendar.
- Las clases ya creadas siguen funcionando en Calendar y Meet, pero EduShield no podrá reagendarlas ni borrarlas hasta que reconectes.
- El SSO seguirá pidiendo consentimiento la próxima vez que lo uses si lo desautorizaste desde Google.
- Para volver a usar la integración, repetí los pasos del apartado 03.
05
Datos almacenados y eliminación
Qué guardamos
- Identificador Google (sub) y correo — para vincular tu cuenta EduShield con tu cuenta Google.
- Tokens OAuth de Calendar (access + refresh) — cifrados con AES-GCM antes de tocar disco. Se descifran solo en el servidor en el momento exacto de hacer una llamada a Google.
- Scope concedido, fecha de conexión, fecha de último uso y fecha de expiración del access token.
- Event ID de cada clase creada por EduShield, para poder reagendarla o eliminarla más adelante.
Qué NO guardamos
- Tu contraseña Google (no la pedimos nunca).
- Tu calendario completo, otros eventos personales, contactos, Drive, Gmail o Photos.
- El contenido de las grabaciones de Meet — esos archivos viven en tu Drive.
Cómo se eliminan tus datos
- Al desconectar Google Meet (sección 04), borramos los tokens y el registro de integración.
- Al desautorizar la app desde Google, también purgamos el registro local en la siguiente llamada que falle por
invalid_grant. - Si eliminás tu cuenta de EduShield desde Eliminar mis datos, además se borran los Event IDs guardados.
Cumplimiento con la User Data Policy de Google
EduShield cumple con la Google API Services User Data Policy, incluyendo los requisitos de Limited Use: los datos de Calendar obtenidos de los scopes citados solo se usan para proveer la funcionalidad descrita aquí, no se transfieren a terceros, no se usan para publicidad, ni se exponen a humanos salvo que el propio usuario los solicite o sea estrictamente necesario para soporte/seguridad/cumplimiento legal.
06
Solución de problemas
“Continuar con Google” devuelve “No tenés cuenta”.
EduShield rechaza el SSO si tu correo Google no existe todavía como usuario de EduShield. Pedile a tu coordinador o admin que te invite, o registrate desde Crear cuenta.
Conecto Google Meet pero al guardar la clase me dice “no devolvió un link de Meet”.
Eso ocurre cuando la cuenta Google del docente tiene Meet desactivado por su admin de Workspace. Pedile a tu admin que habilite Meet para tu unidad organizativa, o usá una cuenta personal Gmail.
El link de Meet aparece pero la clase no aparece en mi Google Calendar.
EduShield crea el evento en tu calendario primario (primary). Si tenés varios calendarios, asegurate de tener visible “Mi calendario principal”. Refrescá Calendar después de programar la clase.
Recibo correos de invitación a estudiantes y no los quería.
EduShield solo agrega attendees cuando el docente lo activa explícitamente al crear la clase. Si la opción está desactivada, el evento se crea sin invitar a nadie y solo expone el link en EduShield.
Veo el error “Token expirado” en la tarjeta de Google Meet.
El refresh token puede invalidarse si desautorizás la app desde Google o si pasan más de 6 meses sin uso. Hacé clic en Reautorizar y volvé a aceptar el consentimiento.
¿Por qué no muestran las grabaciones dentro de EduShield?
EduShield evita pedir el scope de Drive para mantener los permisos al mínimo. Las grabaciones de Meet quedan en tu Google Drive (carpeta “Meet Recordings”) y la UI de EduShield muestra un enlace directo a esa carpeta cuando la clase termina.
07
Contacto y soporte
Si necesitás ayuda con la integración o querés reportar un problema de seguridad, escribinos desde nuestro formulario oficial de soporte:
- Soporte general: elegí el motivo “Integraciones / Google” en el formulario.
- Equipo de revisores Google (OAuth verification): indicá “Google API Verification” en el campo de asunto del formulario para escalado prioritario.
- Reportes de seguridad: elegí el motivo “Seguridad / Vulnerabilidad”; tu mensaje llega cifrado a nuestro equipo.
Documentos relacionados: Términos del servicio, Política de privacidad, Eliminar mis datos, Integración con Zoom.