Créer et gérer des groupes d'élèves

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 :

Accéder aux méthodes des groupes d'élèves dans le programme Preview développeur

Pour accéder aux méthodes des groupes d'élèves en version bêta, vous devez procéder comme suit :

  • Rejoignez le programme Preview développeur.
  • Configurez votre bibliothèque cliente pour accéder aux fonctionnalités en version bêta. Les méthodes du DPP ne sont pas exposées dans les bibliothèques clientes standards ni dans les requêtes HTTP standards. Une fois que vous avez rejoint le programme Developer Partner, vous pouvez accéder aux bibliothèques clientes des groupes d'élèves et les télécharger pour des langages de programmation spécifiques. Consultez la page Accéder aux API en version preview pour découvrir comment configurer la bibliothèque cliente de votre choix avec une version preview et un libellé.
  • Définissez la version et le libellé de l'aperçu lorsque vous effectuez des requêtes API. Pour les méthodes de groupes d'élèves, la version bêta est V1_20250630_PREVIEW et le libellé bêta est DEVELOPER_PREVIEW. Vous trouverez des exemples de requêtes API avec la version Preview dans la section Gérer les groupes d'élèves.

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 :

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.
  • Les champs d'application suivants ont été ajoutés à l'écran d'autorisation OAuth de votre projet :
    • https://www.googleapis.com/auth/classroom.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly pour 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.

Si vous avez suivi le guide de démarrage rapide Python comme point de départ, modifiez le service Classroom pour accéder aux méthodes d'aperçu.

Python

classroom_service = 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')

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.

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 envoyée au point de terminaison CreateStudentGroup n'aboutira pas s'il est élève du cours.

Python

def check_student_groups_update_capability(classroom_service, course_id):
    """Checks whether a user is able to create and modify student groups in a course."""
    capability = classroom_service.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 allowed to create and modify student groups.")
    else:
        print("User is not allowed 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,
        previewVersion="V1_20250630_PREVIEW",
    ).execute()

    print(response)

La réponse contient l'id du groupe d'élèves nouvellement créé, l'courseId et l'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",
        previewVersion="V1_20250630_PREVIEW"
    ).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,
        previewVersion="V1_20250630_PREVIEW",
    ).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,
        previewVersion="V1_20250630_PREVIEW"
    ).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,
        previewVersion="V1_20250630_PREVIEW"
    ).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",
        previewVersion="V1_20250630_PREVIEW"
    ).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,
        previewVersion="V1_20250630_PREVIEW"
    ).execute()

    print(results.get("studentGroupMembers"))

Chaque ressource StudentGroupMember inclut les courseId, studentGroupId et userId du membre du groupe.