Vous pouvez répartir vos élèves dans des groupes spécifiques pour améliorer votre enseignement, par exemple en leur assignant des devoirs ciblés et en organisant des activités collaboratives. Utilisez l'API Classroom pour créer, modifier et lire des groupes d'élèves dans un cours au nom des administrateurs et des enseignants.
Vous pouvez créer, mettre à jour, supprimer et lire des groupes d'élèves à l'aide des méthodes suivantes :
Vous pouvez également ajouter, supprimer et lire des membres dans un groupe d'élèves à l'aide des méthodes suivantes :
Conditions d'éligibilité et de licence
Pour créer, modifier ou supprimer des groupes d'élèves dans un cours, et pour ajouter ou supprimer des membres dans des groupes d'élèves, les conditions suivantes doivent être remplies :
- L'utilisateur qui envoie la demande doit être un enseignant du cours ou un administrateur du domaine.
- L'utilisateur qui envoie la demande doit disposer d'une licence Google Workspace for Education Plus.
- Le propriétaire du cours doit disposer d'une licence Google Workspace for Education Plus.
Lire les groupes d'élèves et leurs membres
Les administrateurs et les enseignants d'un cours peuvent lire les données des groupes d'élèves, quelle que soit la licence qui leur est attribuée. Cela signifie que les requêtes envoyées aux points de terminaison ListStudentGroups et ListStudentGroupMembers sont autorisées au nom de n'importe quel administrateur ou enseignant d'un cours.
Conditions préalables pour les exemples de code
Ce guide fournit des exemples de code en Python et suppose que vous disposez des éléments suivants :
- Un projet Google Cloud. Vous pouvez en configurer un en suivant les instructions du guide de démarrage rapide pour Python.
- Ajoutez les champs d'application suivants à l'écran d'autorisation OAuth de votre projet :
https://www.googleapis.com/auth/classroom.rostershttps://www.googleapis.com/auth/classroom.rosters.readonlypour les points de terminaison en lecture seule.
- ID d'un cours dans lequel les groupes d'élèves doivent être gérés. Le propriétaire du cours doit disposer d'une licence Google Workspace for Education Plus.
- Accès aux identifiants d'un enseignant ou d'un administrateur disposant d'une licence Google Workspace for Education Plus.
Vérifier l'éligibilité des utilisateurs
L'API Classroom fournit le point de terminaison userProfiles.checkUserCapability pour vous aider à déterminer de manière proactive si un utilisateur peut créer et modifier des groupes d'élèves et leurs membres. Cette méthode est disponible dans le programme Preview développeur. Si vous avez suivi le guide de démarrage rapide Python comme point de départ, configurez un nouveau service Classroom pouvant accéder aux méthodes d'aperçu :
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')
Le point de terminaison userProfiles.checkUserCapability évalue uniquement si un utilisateur est éligible à l'utilisation d'une certaine fonctionnalité, comme la modification de groupes d'élèves. Il ne fournit aucune information sur le rôle dans le cours. Par exemple, même si un utilisateur dispose de la capacité CREATE_STUDENT_GROUP, une requête au point de terminaison CreateStudentGroup n'aboutira pas s'il est élève du cours.
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.")
Gérer les groupes d'élèves
Vous pouvez créer des groupes d'élèves à l'aide du point de terminaison 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 réponse contient le id du groupe d'élèves nouvellement créé, le courseId et le title du groupe d'élèves.
Le groupe d'élèves id peut être utilisé pour modifier ou supprimer le groupe d'élèves individuel.
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)
Vous pouvez récupérer les groupes d'élèves d'un cours à l'aide du point de terminaison ListStudentGroups :
Python
def list_student_groups(classroom_service, course_id):
results = classroom_service.courses().studentGroups().list(
courseId=course_id
).execute()
studentGroups = results.get("studentGroups")
Gérer les membres d'un groupe d'élèves
Une fois le groupe d'élèves créé, vous pouvez y ajouter des membres.
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 vous souhaitez supprimer un membre d'un groupe d'élèves, envoyez une requête semblable à celle-ci :
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)
Vous pouvez lire les membres d'un groupe en envoyant la requête suivante :
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"))
Chaque ressource StudentGroupMember inclut les courseId, studentGroupId et userId du membre du groupe.