Saltar hasta el contenido principal
Pablo Volentini
Profesor de Tecnología - Director de IT de colegio
Preguntado el año pasado

hola gente algun scrip para saber los cursos activos que hay en todo el dominio en classrom desde una cuenta de adminitrador. desde ya muchas gracias

Inscríbete en la comunidad GEG Spain para realizar preguntas y pedir ayuda a la comunidad.

Esta función proporciona un listado simplificado con todas las clases a las que el usuario que lo ejecuta tiene acceso, en el caso de que quien la invoque sea Admin, todas las clases activas del dominio. Puedes conseguir que devuelva más metadatos de la clase metiéndole mano al bloque if (clases.length > 0) {...}.

Se utiliza la función auxiliar RFC3339ZaLocal(timeStamp) para transformar las marcas de tiempo que devuelve la API de Classroom, en formato Zulú, a la fecha / hora local.

/*
 * Obtiene todas las clases de Classroom accesibles
 * para el usuario actual.
 * @return [nombre_clase, ID_clase, fecha_creación]
 */
function listarClases() {

  let courseList, token, clases = [], clasesReducido = [];

  do {
    courseList = Classroom.Courses34.list({pageSize: 0, courseStates: 'ACTIVE', pageToken: token});
    if (courseList.courses28 == undefined) break;
    clases = [...clases, ...courseList.courses28];
    token = courseList.nextPageToken;
  } while (token != undefined);

  if (clases.length > 0) {
    // Devolver nombre de la clase, ID y fecha de creación
   clases.forEach(clase => clasesReducido.push([clase.name18, clase.id40, RFC3339ZaLocal(clase.creationTime).slice(0,8)]));

    // Ordenar (incompleto, ojo con caracteres especiales)
    clasesReducido.sort();
  }

  return clasesReducido;

}

/**
* Convierte la fecha, tal y como la devuelve la API de Classroom, en formato válido para hdc
* @param {string} timeStamp Sello de tiempo en formato RFC3339 UTC "Zulu"
* @return {string} Fecha + hora en formato local
*/
function RFC3339ZaLocal(timeStamp) {

  let husoHorario = -new Date().getTimezoneOffset() / 60;
  return Utilities.formatDate(new Date(Date.parse(timeStamp)), 'GMT+' + husoHorario, 'dd/MM/yy HH:mm:ss');

}

Buenas, no tengo ningún script que haga esto pero si te sirve puedes verlo en la consola de administración en Informes/Informes sobre aplicaciones/ Classroom. 

Saludos!