Crea y administra grupos de estudiantes

Puedes usar los grupos de estudiantes para organizarlos en grupos específicos y mejorar las experiencias de enseñanza, como las tareas exclusivas para cada uno y las actividades colaborativas. Usa la API de Classroom para crear, modificar y leer grupos de estudiantes dentro de un curso en nombre de los administradores y profesores.

Puedes crear, actualizar, borrar y leer grupos de estudiantes con los siguientes métodos:

También puedes agregar, quitar y leer miembros dentro de un grupo de estudiantes con los siguientes métodos:

Requisitos de licencias y elegibilidad

Para crear, modificar o borrar grupos de estudiantes en un curso, y agregar o quitar miembros de los grupos de estudiantes, se deben cumplir las siguientes condiciones:

Lectura de grupos de estudiantes y sus miembros

Los administradores y profesores de un curso pueden leer los datos de los grupos de estudiantes, independientemente de la licencia que tengan asignada. Esto significa que se permiten las solicitudes a los extremos ListStudentGroups y ListStudentGroupMembers en nombre de cualquier administrador o profesor de un curso.

Requisitos previos para los ejemplos de código

En esta guía, se proporcionan ejemplos de código en Python y se supone que tienes lo siguiente:

  • Un proyecto de Google Cloud, Puedes configurar uno siguiendo las instrucciones de la guía de inicio rápido de Python.
  • Se agregaron los siguientes permisos a la pantalla de consentimiento de OAuth de tu proyecto:
    • https://www.googleapis.com/auth/classroom.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly para extremos de solo lectura.
  • Es el ID de un curso en el que se deben administrar los grupos de estudiantes. El propietario del curso debe tener una licencia de Google Workspace for Education Plus.
  • Acceso a las credenciales de un profesor o administrador con una licencia de Google Workspace for Education Plus

Verifica la elegibilidad del usuario

La API de Classroom proporciona el extremo userProfiles.checkUserCapability para ayudarte a determinar de forma proactiva si un usuario puede crear y modificar grupos de estudiantes y sus miembros. El método está disponible a través del Programa de versión preliminar para desarrolladores. Si seguiste la guía de inicio rápido de Python como punto de partida, configura un nuevo servicio de Classroom que pueda acceder a los métodos de vista previa:

Python

classroom_service_with_capability_endpoint = googleapiclient.discovery.build(
    serviceName='classroom',
    version='v1',
    credentials=creds,
    static_discovery=False,
    discoveryServiceUrl='https://classroom.googleapis.com/$discovery/rest?labels=DEVELOPER_PREVIEW&key=API_KEY')

El extremo userProfiles.checkUserCapability solo evalúa si un usuario es apto para usar una determinada capacidad, como modificar grupos de estudiantes. No ofrece información sobre el rol del curso. Por ejemplo, incluso si un usuario tiene la capacidad CREATE_STUDENT_GROUP, si es estudiante del curso, no se completará una solicitud al extremo CreateStudentGroup.

Python

def check_student_groups_update_capability():
    """Checks whether a user is eligible to create and modify student groups."""
    capability = classroom_service_with_capability_endpoint.userProfiles().checkUserCapability(
        userId="me", # Can also be set to a different user's email address or ID
        capability="CREATE_STUDENT_GROUP",
        previewVersion="V1_20240930_PREVIEW" # Required while the method is in the DPP.
    ).execute()

    if capability.get("allowed"): # Retrieve the `allowed` boolean from the response.
        print("User is eligible to create and modify student groups.")
    else:
        print("User is not eligible to create and modify student groups.")

Administra grupos de estudiantes

Los grupos de estudiantes se pueden crear con el extremo CreateStudentGroup.

Python

def create_student_group(classroom_service, course_id):
    body = {
        "title": "Team Blue"
    }

    response = classroom_service.courses().studentGroups().create(
        courseId=course_id,
        body=body
    ).execute()

    print(response)

La respuesta contiene el id del grupo de estudiantes recién creado, el courseId y el title del grupo de estudiantes.

El grupo de estudiantes id se puede usar para actualizar o borrar el grupo de estudiantes individual.

Python

def update_student_group(classroom_service, course_id, student_group_id):
    body = {
        "title": "Team Green"
    }

    response = classroom_service.courses().studentGroups().patch(
        courseId=course_id,
        id=student_group_id,
        body=body,
        updateMask="title"
    ).execute()

    print(response)
def delete_student_group(classroom_service, course_id, student_group_id):
    response = classroom_service.courses().studentGroups().delete(
        courseId=course_id,
        id=student_group_id
    ).execute()

    print(response)

Puedes recuperar los grupos de estudiantes dentro de un curso con el extremo ListStudentGroups:

Python

def list_student_groups(classroom_service, course_id):
    results = classroom_service.courses().studentGroups().list(
        courseId=course_id
    ).execute()

    studentGroups = results.get("studentGroups")

Administra los miembros de un grupo de estudiantes

Una vez que se haya creado correctamente el grupo de estudiantes, podrás agregarle miembros.

Python

def add_student_group_member(classroom_service, course_id, student_group_id):
    body = {
        "userId": "student@schooldomain.com"
    }

    response = classroom_service.courses().studentGroups().studentGroupMembers().create(
        courseId=course_id,
        studentGroupId=student_group_id,
        body=body
    ).execute()

    print(response)

Si quieres quitar a un miembro de un grupo de estudiantes, haz una solicitud como la siguiente:

Python

def delete_student_group_member(classroom_service, course_id, student_group_id):
    response = classroom_service.courses().studentGroups().studentGroupMembers().delete(
        courseId=course_id,
        studentGroupId=student_group_id,
        userId="student@schooldomain.com"
    ).execute()
    print(response)

Para leer los miembros de un grupo, realiza la siguiente solicitud:

Python

def list_student_group_members(classroom_service, course_id, student_group_id):
    results = classroom_service.courses().studentGroups().studentGroupMembers().list(
        courseId=course_id,
        studentGroupId=student_group_id
    ).execute()

    print(results.get("studentGroupMembers"))

Cada recurso StudentGroupMember incluye los campos courseId, studentGroupId y userId del miembro del grupo.