Tworzenie grup uczniów i zarządzanie nimi

Grupy uczniów możesz tworzyć w różnych celach, np. związanych z przypisywaniem ukierunkowanych projektów czy współpracą. Używaj interfejsu Classroom API do tworzenia, modyfikowania i odczytywania grup uczniów w ramach kursu w imieniu administratorów i nauczycieli.

Grupy uczniów możesz tworzyć, aktualizować, usuwać i odczytywać za pomocą tych metod:

Możesz też dodawać i usuwać członków grupy uczniów oraz czytać ich posty, korzystając z tych metod:

Dostęp do metod grup uczniów w ramach programu podglądu dla deweloperów

Aby uzyskać dostęp do metod grup uczniów w wersji podglądowej, musisz wykonać te czynności:

  • Dołącz do Programu testowania wersji deweloperskich (DPP).
  • Skonfiguruj bibliotekę klienta, aby uzyskać dostęp do funkcji w wersji przedpremierowej. Metody w DPP nie są udostępniane w standardowych bibliotekach klienta ani standardowych żądaniach HTTP. Po dołączeniu do programu DPP możesz uzyskać dostęp do bibliotek klienta grup uczniów dla określonych języków programowania i je pobrać. Aby dowiedzieć się, jak skonfigurować wybraną bibliotekę klienta z wersją i etykietą wersji zapoznawczej, zapoznaj się ze stroną Uzyskiwanie dostępu do interfejsów API w wersji zapoznawczej.
  • Podczas wysyłania żądań do interfejsu API ustaw wersję podglądu i etykietę podglądu. W przypadku metod grup uczniów wersja podglądowa to V1_20250630_PREVIEW, a etykieta podglądu to DEVELOPER_PREVIEW. Przykłady żądań interfejsu API w wersji podglądowej znajdziesz w sekcji Zarządzanie grupami uczniów.

Wymagania dotyczące licencji i kryteria kwalifikacji

Aby utworzyć, zmodyfikować lub usunąć grupy uczniów na kursie oraz dodać lub usunąć członków z grup uczniów, musisz spełnić te warunki:

Odczytywanie grup uczniów i ich członków

Administratorzy i nauczyciele zajęć mogą odczytywać dane grup uczniów niezależnie od przypisanej licencji. Oznacza to, że żądania wysyłane do punktów końcowych ListStudentGroups i ListStudentGroupMembers są dozwolone w imieniu dowolnego administratora lub nauczyciela na kursie.

Wymagania wstępne dotyczące przykładowego kodu

W tym przewodniku znajdziesz przykłady kodu w Pythonie. Zakładamy, że masz:

  • Projekt Google Cloud. Możesz go skonfigurować, postępując zgodnie z instrukcjami w tym przewodniku.
  • Dodano te zakresy do ekranu zgody OAuth w projekcie:
    • https://www.googleapis.com/auth/classroom.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly w przypadku punktów końcowych tylko do odczytu.
  • Identyfikator kursu, w którym należy zarządzać grupami uczniów. Właściciel kursu musi mieć licencję Google Workspace for Education Plus.
  • Dostęp do danych logowania nauczyciela lub administratora z licencją Google Workspace for Education Plus.

Jeśli jako punkt wyjścia posłużył Ci krótki przewodnik po Pythonie, zmodyfikuj usługę Classroom, aby uzyskać dostęp do metod w wersji przedpremierowej.

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

Sprawdzanie, czy użytkownik spełnia wymagania

Interfejs Classroom API udostępnia punkt końcowy userProfiles.checkUserCapability, który pomaga proaktywnie określać, czy użytkownik może tworzyć i modyfikować grupy uczniów oraz ich członków.

Punkt końcowy userProfiles.checkUserCapability sprawdza tylko, czy użytkownik może korzystać z określonej funkcji, np. modyfikować grupy uczniów. Nie zawiera żadnych informacji o roli w kursie. Na przykład nawet jeśli użytkownik ma uprawnienia CREATE_STUDENT_GROUP, ale jest uczniem na kursie, żądanie wysłane do punktu końcowego CreateStudentGroup nie zostanie zrealizowane.

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.")

Zarządzanie grupami uczniów

Grupy uczniów można tworzyć za pomocą punktu końcowego 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)

Odpowiedź zawiera id nowo utworzonej grupy uczniów, courseId i title grupy uczniów.

Grupa uczniówid może służyć do aktualizowania lub usuwania grupy poszczególnych uczniów.

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)

Grupy uczniów w ramach kursu możesz pobrać za pomocą punktu końcowego 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")

Zarządzanie członkami grupy uczniów

Po utworzeniu grupy uczniów możesz dodać do niej członków.

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)

Jeśli chcesz usunąć członka z grupy uczniów, wyślij prośbę podobną do tej:

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)

Aby odczytać członków grupy, wyślij to żądanie:

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"))

Każdy zasób StudentGroupMember zawiera courseId, studentGroupId i userId członka grupy.