Вы можете использовать студенческие группы для организации учащихся в определенные группы с целью повышения эффективности обучения, например, для выполнения целевых заданий и совместной работы. Используйте API Classroom для создания, изменения и чтения студенческих групп в рамках курса от имени администраторов и преподавателей.
Вы можете создавать, обновлять, удалять и читать студенческие группы, используя следующие методы:
Вы также можете добавлять, удалять и читать данные участников студенческой группы, используя следующие методы:
Требования к лицензированию и квалификации
Для создания, изменения или удаления студенческих групп в курсе, а также для добавления или удаления участников из студенческих групп необходимо соблюдение следующих условий:
- Пользователь, отправляющий запрос, должен быть преподавателем курса или администратором домена.
- У пользователя, отправляющего запрос, должна быть назначена лицензия 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 .
Проверить соответствие пользователя требованиям
API Classroom предоставляет конечную точку userProfiles.checkUserCapability , которая позволяет заблаговременно определить, может ли пользователь создавать и изменять группы учащихся и их участников. Этот метод доступен в рамках программы предварительного просмотра для разработчиков . Если вы использовали руководство по быстрому запуску Python в качестве отправной точки, настройте новую службу Classroom, которая сможет получить доступ к методам предварительного просмотра:
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')
Конечная точка userProfiles.checkUserCapability проверяет только, имеет ли пользователь право использовать определенную возможность, например, изменять группы студентов. Она не предоставляет никакой информации о роли в курсе. Например, даже если у пользователя есть возможность CREATE_STUDENT_GROUP , и он является студентом курса, запрос к конечной точке 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.")
Управление студенческими группами
Студенческие группы можно создавать с помощью конечной точки 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)
В ответе содержится id вновь созданной студенческой группы, courseId и title студенческой группы.
id студенческой группы можно использовать для обновления или удаления отдельной студенческой группы.
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)
Получить информацию о группах студентов в рамках курса можно с помощью конечной точки ListStudentGroups :
Python
def list_student_groups(classroom_service, course_id):
results = classroom_service.courses().studentGroups().list(
courseId=course_id
).execute()
studentGroups = results.get("studentGroups")
Управление членами студенческой группы
После успешного создания студенческой группы вы можете добавлять в нее участников.
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)
Если вы хотите удалить участника из студенческой группы, отправьте запрос следующим образом:
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)
Вы можете прочитать список участников группы, отправив следующий запрос:
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"))
Каждый ресурс StudentGroupMember содержит идентификатор courseId , studentGroupId и userId участника группы.