Создавайте и управляйте студенческими группами

Вы можете использовать группы учащихся для организации их в определённые группы для повышения эффективности обучения, например, для адресных заданий и совместной работы. Используйте API Classroom для создания, изменения и чтения групп учащихся в рамках курса от имени администраторов и преподавателей.

Вы можете создавать, обновлять, удалять и читать группы студентов, используя следующие методы:

Вы также можете добавлять, удалять и читать список участников студенческой группы, используя следующие методы:

Доступ к методам студенческих групп в программе Developer Preview

Чтобы получить доступ к методам групп студентов в предварительном просмотре, необходимо сделать следующее:

Требования к лицензированию и квалификации

Для создания, изменения или удаления групп студентов на курсе, а также добавления или удаления участников из групп студентов должны быть выполнены следующие условия:

  • Пользователь, отправляющий запрос, должен быть преподавателем курса или администратором домена.
  • Пользователь, подающий запрос, должен иметь назначенную ему лицензию Google Workspace for Education Plus .
  • Владельцу курса должна быть назначена лицензия Google Workspace for Education Plus .

Чтение студенческих групп и их участников

Администраторы и преподаватели курса могут читать данные групп студентов независимо от назначенной им лицензии. Это означает, что запросы к конечным точкам ListStudentGroups и ListStudentGroupMembers разрешены от имени любого администратора или преподавателя курса.

Предварительные условия для примера кода

В этом руководстве приведены примеры кода на Python. Предполагается, что у вас есть следующее:

  • Проект Google Cloud. Вы можете настроить его, следуя инструкциям в кратком руководстве по Python .
  • Добавлены следующие области действия на экран согласия OAuth вашего проекта:
    • https://www.googleapis.com/auth/classroom.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly для конечных точек только для чтения.
  • Идентификатор курса, в рамках которого необходимо управлять группами студентов. Владелец курса должен иметь лицензию Google Workspace for Education Plus .
  • Доступ к учетным данным преподавателя или администратора с лицензией Google Workspace for Education Plus .

Если вы использовали краткое руководство по Python в качестве отправной точки, измените службу Classroom для доступа к методам предварительного просмотра.

Питон

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

Проверить право пользователя

API класса предоставляет конечную точку userProfiles.checkUserCapability , которая поможет вам заблаговременно определить, может ли пользователь создавать и изменять группы учащихся и их участников.

Конечная точка userProfiles.checkUserCapability оценивает только право пользователя использовать определённую возможность, например, изменять группы студентов. Она не предоставляет никакой информации о роли на курсе. Например, даже если у пользователя есть возможность CREATE_STUDENT_GROUP , но он является студентом курса, запрос к конечной точке CreateStudentGroup не будет выполнен.

Питон

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

Управление студенческими группами

Группы студентов можно создавать с помощью конечной точки CreateStudentGroup .

Питон

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)

Ответ содержит id вновь созданной студенческой группы, courseId и title студенческой группы.

id студенческой группы можно использовать для обновления или удаления отдельной студенческой группы.

Питон

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)

Вы можете получить группы студентов в пределах курса, используя конечную точку ListStudentGroups :

Питон

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

Управление членами студенческой группы

После успешного создания студенческой группы вы можете добавлять в нее участников.

Питон

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)

Если вы хотите удалить участника из студенческой группы, подайте запрос следующего вида:

Питон

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)

Вы можете просмотреть список участников группы, сделав следующий запрос:

Питон

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

Каждый ресурс StudentGroupMember включает courseId , studentGroupId и userId члена группы.