Membuat dan mengelola grup siswa

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:

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.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly untuk 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.