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:
- El usuario que realiza la solicitud debe ser profesor del curso o administrador del dominio.
- El usuario que realiza la solicitud debe tener asignada una licencia de Google Workspace for Education Plus.
- El propietario del curso debe tener asignada una licencia de Google Workspace for Education Plus.
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.rostershttps://www.googleapis.com/auth/classroom.rosters.readonlypara 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.