Tạo và quản lý nhóm học viên

Bạn có thể sử dụng nhóm học viên để sắp xếp học viên thành các nhóm riêng biệt nhằm nâng cao trải nghiệm giảng dạy, chẳng hạn như giao bài tập theo mục tiêu cụ thể và các hoạt động cộng tác. Sử dụng Classroom API để tạo, sửa đổi và đọc các nhóm học viên trong một khoá học thay mặt cho quản trị viên và giáo viên.

Bạn có thể tạo, cập nhật, xoá và đọc nhóm học viên bằng các phương thức sau:

Bạn cũng có thể thêm, xoá và đọc các thành viên trong một nhóm học viên bằng cách sử dụng các phương thức sau:

Yêu cầu về giấy phép và điều kiện

Để tạo, sửa đổi hoặc xoá nhóm học viên trong một khoá học và thêm hoặc xoá thành viên khỏi nhóm học viên, bạn phải đáp ứng các điều kiện sau:

Đọc thông tin về nhóm học viên và thành viên của nhóm

Quản trị viên và giáo viên của một khoá học có thể đọc dữ liệu nhóm học viên bất kể họ được chỉ định loại giấy phép nào. Điều này có nghĩa là các yêu cầu đối với điểm cuối ListStudentGroupsListStudentGroupMembers được phép thay mặt cho bất kỳ quản trị viên hoặc giáo viên nào trong một khoá học.

Điều kiện tiên quyết đối với ví dụ về mã

Hướng dẫn này cung cấp các ví dụ về mã bằng Python và giả định rằng bạn đáp ứng các điều kiện sau:

  • Một dự án trên Google Cloud. Bạn có thể thiết lập một ứng dụng theo hướng dẫn trong bài viết Hướng dẫn nhanh về Python.
  • Thêm các phạm vi sau vào màn hình xin phép bằng OAuth của dự án:
    • https://www.googleapis.com/auth/classroom.rosters
    • https://www.googleapis.com/auth/classroom.rosters.readonly cho các điểm cuối chỉ có thể đọc.
  • Mã nhận dạng của một khoá học mà bạn nên quản lý nhóm học viên. Chủ sở hữu khoá học phải có giấy phép Google Workspace for Education Plus.
  • Có thông tin đăng nhập của giáo viên hoặc quản trị viên có giấy phép Google Workspace for Education Plus.

Kiểm tra điều kiện sử dụng của người dùng

Classroom API cung cấp điểm cuối userProfiles.checkUserCapability để giúp bạn chủ động xác định xem người dùng có thể tạo và sửa đổi nhóm học viên cũng như thành viên của nhóm hay không. Phương thức này có trong Chương trình dùng thử cho nhà phát triển. Nếu bạn làm theo hướng dẫn bắt đầu nhanh về Python làm điểm bắt đầu, hãy thiết lập một dịch vụ Lớp học mới có thể truy cập vào các phương thức xem trước:

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

Điểm cuối userProfiles.checkUserCapability chỉ đánh giá xem người dùng có đủ điều kiện sử dụng một chức năng nhất định hay không, chẳng hạn như sửa đổi nhóm học viên. Trang này không cung cấp thông tin về vai trò của người dùng trong khoá học. Ví dụ: ngay cả khi người dùng có khả năng CREATE_STUDENT_GROUP, nếu họ là học viên trong khoá học, thì yêu cầu đến điểm cuối CreateStudentGroup sẽ không thành công.

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

Quản lý nhóm học viên

Bạn có thể tạo nhóm học viên bằng điểm cuối 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)

Phản hồi chứa id của nhóm học viên mới tạo, courseIdtitle của nhóm học viên.

Bạn có thể dùng nhóm học viên id để cập nhật hoặc xoá nhóm học viên riêng lẻ.

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)

Bạn có thể truy xuất các nhóm học viên trong một khoá học bằng cách sử dụng điểm cuối ListStudentGroups:

Python

def list_student_groups(classroom_service, course_id):
    results = classroom_service.courses().studentGroups().list(
        courseId=course_id
    ).execute()

    studentGroups = results.get("studentGroups")

Quản lý thành viên trong nhóm học viên

Sau khi tạo nhóm học viên thành công, bạn có thể thêm thành viên vào nhóm đó.

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)

Nếu bạn muốn xoá một thành viên khỏi nhóm học viên, hãy đưa ra yêu cầu như sau:

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)

Bạn có thể đọc các thành viên trong một nhóm bằng cách đưa ra yêu cầu sau:

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

Mỗi tài nguyên StudentGroupMember đều bao gồm courseId, studentGroupIduserId của thành viên nhóm.