Anda dapat menggunakan grup siswa untuk mengelompokkan siswa ke dalam grup tertentu untuk meningkatkan pengalaman mengajar, seperti tugas yang ditargetkan dan aktivitas kolaboratif. Gunakan Classroom API untuk membuat, mengubah, dan membaca grup siswa dalam kursus atas nama administrator dan pengajar.
Anda dapat membuat, memperbarui, menghapus, dan membaca grup siswa menggunakan metode berikut:
Anda juga dapat menambahkan, menghapus, dan membaca anggota dalam grup siswa menggunakan metode berikut:
Persyaratan lisensi dan kelayakan
Untuk membuat, mengubah, atau menghapus grup siswa dalam kursus dan menambahkan atau menghapus anggota dari grup siswa, kondisi berikut harus dipenuhi:
- Pengguna yang membuat permintaan harus menjadi pengajar dalam kursus atau administrator domain.
- Pengguna yang membuat permintaan harus memiliki lisensi Google Workspace for Education Plus yang ditetapkan untuknya.
- Pemilik kursus harus memiliki lisensi Google Workspace for Education Plus yang ditetapkan untuk nya.
Membaca grup siswa dan anggotanya
Administrator dan pengajar kursus dapat membaca data grup siswa, apa pun lisensi yang ditetapkan untuk mereka. Artinya, permintaan ke endpoint ListStudentGroups dan ListStudentGroupMembers diizinkan atas nama administrator atau pengajar mana pun dalam kursus.
Prasyarat contoh kode
Panduan ini menyediakan contoh kode dalam Python, dan mengasumsikan bahwa Anda memiliki hal berikut:
- Project Google Cloud. Anda dapat menyiapkan project dengan mengikuti petunjuk di panduan memulai Python.
- Menambahkan cakupan berikut ke layar izin OAuth project Anda:
https://www.googleapis.com/auth/classroom.rostershttps://www.googleapis.com/auth/classroom.rosters.readonlyuntuk endpoint hanya baca.
- ID kursus tempat grup siswa akan dikelola. Pemilik kursus harus memiliki lisensi Google Workspace for Education Plus.
- Akses ke kredensial pengajar atau administrator dengan lisensi Google Workspace for Education Plus.
Memeriksa kelayakan pengguna
Classroom API menyediakan userProfiles.checkUserCapability
endpoint untuk membantu Anda menentukan secara proaktif apakah pengguna dapat membuat dan
mengubah grup siswa serta anggotanya. Metode ini tersedia melalui
Program Pratinjau Developer. Jika Anda mengikuti panduan memulai Python sebagai
titik awal, siapkan layanan Classroom baru yang dapat mengakses
metode pratinjau:
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')
Endpoint userProfiles.checkUserCapability hanya mengevaluasi apakah pengguna memenuhi syarat untuk menggunakan kemampuan tertentu, seperti mengubah grup siswa. Endpoint ini tidak menawarkan informasi apa pun tentang peran kursus. Misalnya, meskipun pengguna memiliki kemampuan CREATE_STUDENT_GROUP, jika dia adalah siswa dalam kursus, permintaan ke endpoint CreateStudentGroup tidak akan berhasil.
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.")
Mengelola grup siswa
Grup siswa dapat dibuat menggunakan endpoint 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)
Respons berisi id grup siswa yang baru dibuat, courseId, dan title grup siswa.
id grup siswa dapat digunakan untuk memperbarui atau menghapus grup siswa individual.
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)
Anda dapat mengambil grup siswa dalam kursus menggunakan the
ListStudentGroups endpoint:
Python
def list_student_groups(classroom_service, course_id):
results = classroom_service.courses().studentGroups().list(
courseId=course_id
).execute()
studentGroups = results.get("studentGroups")
Mengelola anggota grup siswa
Setelah grup siswa berhasil dibuat, Anda dapat menambahkan anggota ke grup tersebut.
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)
Jika Anda ingin menghapus anggota dari grup siswa, buat permintaan seperti berikut:
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)
Anda dapat membaca anggota dalam grup dengan membuat permintaan berikut:
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"))
Setiap resource StudentGroupMember mencakup courseId, studentGroupId, dan userId anggota grup.