ایجاد و مدیریت گروه های دانشجویی

شما می‌توانید از گروه‌های دانشجویی برای سازماندهی دانشجویان در گروه‌های خاص برای بهبود تجربیات تدریس، مانند تکالیف هدفمند و فعالیت‌های مشارکتی، استفاده کنید. از Classroom API برای ایجاد، اصلاح و خواندن گروه‌های دانشجویی در یک دوره به نمایندگی از مدیران و معلمان استفاده کنید.

شما می‌توانید با استفاده از روش‌های زیر گروه‌های دانشجویی را ایجاد، به‌روزرسانی، حذف و بخوانید:

همچنین می‌توانید با استفاده از روش‌های زیر، اعضای یک گروه دانشجویی را اضافه، حذف و بخوانید:

شرایط لازم برای اخذ مجوز و واجد شرایط بودن

برای ایجاد، تغییر یا حذف گروه‌های دانشجویی در یک دوره و اضافه یا حذف اعضا از گروه‌های دانشجویی، باید شرایط زیر رعایت شود:

  • کاربری که درخواست را ارسال می‌کند باید معلم دوره یا مدیر دامنه باشد.
  • کاربری که درخواست را ارسال می‌کند باید مجوز Google Workspace for Education Plus را داشته باشد.
  • صاحب دوره باید مجوز Google Workspace for Education Plus را داشته باشد.

گروه‌های دانشجویی مطالعه و اعضای آن

مدیران و معلمان یک دوره می‌توانند داده‌های گروه دانش‌آموزان را صرف نظر از مجوزی که به آنها اختصاص داده شده است، بخوانند . این بدان معناست که درخواست‌ها به نقاط انتهایی ListStudentGroups و ListStudentGroupMembers از طرف هر مدیر یا معلمی در یک دوره مجاز است.

پیش‌نیازهای نمونه کد

این راهنما نمونه‌های کد در پایتون را ارائه می‌دهد و فرض می‌کند که شما موارد زیر را دارید:

  • یک پروژه گوگل کلود. می‌توانید با دنبال کردن دستورالعمل‌های موجود در راهنمای سریع پایتون، یکی از آنها را راه‌اندازی کنید.
  • محدوده‌های زیر به صفحه رضایت 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 .

بررسی صلاحیت کاربر

رابط برنامه‌نویسی کاربردی کلاس درس (Classroom API) نقطه پایانی userProfiles.checkUserCapability را ارائه می‌دهد تا به شما کمک کند به طور فعال تعیین کنید که آیا یک کاربر قادر به ایجاد و تغییر گروه‌های دانشجویی و اعضای آن است یا خیر. این روش از طریق برنامه پیش‌نمایش توسعه‌دهندگان (Developer Preview Program) در دسترس است. اگر از راهنمای سریع پایتون به عنوان نقطه شروع استفاده کرده‌اید، یک سرویس کلاس درس جدید راه‌اندازی کنید که بتواند به متدهای پیش‌نمایش دسترسی داشته باشد:

پایتون

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 موفقیت‌آمیز نخواهد بود.

پایتون

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 ایجاد کرد.

پایتون

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 گروه دانشجویی می‌تواند برای به‌روزرسانی یا حذف گروه دانشجویی مورد استفاده قرار گیرد.

پایتون

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 بازیابی کنید:

پایتون

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

    studentGroups = results.get("studentGroups")

مدیریت اعضای گروه دانشجویی

پس از ایجاد موفقیت‌آمیز گروه دانشجویی، می‌توانید اعضا را به آن اضافه کنید.

پایتون

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)

اگر می‌خواهید عضوی را از یک گروه دانشجویی حذف کنید، درخواستی مانند زیر ارسال کنید:

پایتون

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)

شما می‌توانید با درخواست زیر، اعضای یک گروه را بخوانید:

پایتون

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 عضو گروه است.