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 odczytywać ich dane za pomocą tych metod:
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:
- Użytkownik wysyłający prośbę musi być nauczycielem na zajęciach lub administratorem domeny.
- Użytkownik wysyłający prośbę musi mieć przypisaną licencję na Google Workspace for Education Plus.
- Właściciel kursu musi mieć przypisaną licencję Google Workspace for Education Plus.
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.rostershttps://www.googleapis.com/auth/classroom.rosters.readonlyw 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.
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. Metoda jest dostępna w ramach Programu wersji przedpremierowej dla deweloperów. Jeśli jako punkt wyjścia posłużył Ci szybki przewodnik po Pythonie, skonfiguruj nową usługę Classroom, która ma dostęp do metod w wersji przedpremierowej:
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')
Punkt końcowy userProfiles.checkUserCapability sprawdza tylko, czy użytkownik może korzystać z określonej funkcji, np. modyfikować grupy uczniów. Nie zawiera informacji o roli w kursie. Na przykład nawet jeśli użytkownik ma uprawnienie CREATE_STUDENT_GROUP, ale jest uczniem na zajęciach, żądanie wysłane do punktu końcowego CreateStudentGroup nie zostanie zrealizowane.
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.")
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
).execute()
print(response)
Odpowiedź zawiera id nowo utworzonej grupy uczniów, courseId i title grupy uczniów.
Grupa uczniów id 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"
).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)
Możesz pobrać grupy uczniów w ramach kursu za pomocą punktu końcowego
ListStudentGroups:
Python
def list_student_groups(classroom_service, course_id):
results = classroom_service.courses().studentGroups().list(
courseId=course_id
).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
).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"
).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
).execute()
print(results.get("studentGroupMembers"))
Każdy zasób StudentGroupMember zawiera courseId, studentGroupId i userId członka grupy.