จัดการระยะเวลาการให้คะแนนโดยใช้ Classroom API

คำแนะนำนี้จะอธิบายวิธีใช้ปลายทางของระยะเวลาการให้คะแนนใน Google Classroom API

ภาพรวม

ระยะเวลาการให้คะแนนสร้างขึ้นเพื่อจัดระเบียบการบ้าน แบบทดสอบ และโครงงานตามช่วงวันที่ที่ระบุ Classroom API ช่วยให้นักพัฒนาซอฟต์แวร์สร้าง แก้ไข และอ่านระยะเวลาการให้คะแนนใน Classroom ในนามของผู้ดูแลระบบและครูได้ นอกจากนี้คุณยังใช้ Classroom API เพื่อกำหนดระยะเวลาการให้คะแนนใน CourseWork ได้

Classroom API มีปลายทาง 2 จุดสำหรับอ่านและเขียนข้อมูลระยะเวลาการให้คะแนนในหลักสูตร ดังนี้

  • GetGradingPeriodSettings: ช่วยให้คุณอ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้
  • UpdateGradingPeriodSettings: ช่วยให้คุณจัดการการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้โดยการเพิ่ม แก้ไข และลบระยะเวลาการให้คะแนน รวมถึงนำระยะเวลาการให้คะแนนที่กำหนดค่าไว้ไปใช้กับงานทั้งหมดที่มีในหลักสูตร

ข้อกำหนดการอนุญาตให้ใช้สิทธิ

แก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร

หากต้องการสร้าง แก้ไข หรือลบระยะเวลาการให้คะแนนในหลักสูตรโดยใช้ปลายทาง UpdateGradingPeriodSettings ต้องเป็นไปตามเงื่อนไขต่อไปนี้

อ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร

ผู้ดูแลระบบโดเมนและครูของหลักสูตรจะอ่านการตั้งค่าระยะเวลาการให้คะแนนได้ ไม่ว่าจะได้รับใบอนุญาตประเภทใดก็ตาม ซึ่งหมายความว่าคำขอที่ส่งไปยังปลายทาง GetGradingPeriodSettings จะได้รับอนุญาตในนามของผู้ดูแลระบบโดเมนหรือครูคนใดก็ได้

ตั้งรหัสระยะเวลาการให้คะแนนใน CourseWork

ครูของหลักสูตรจะเพิ่ม gradingPeriodId ได้เมื่อสร้างหรืออัปเดตหลักสูตรดังกล่าวโดยใช้ API ไม่ว่าจะมอบหมายใบอนุญาตรุ่นใดก็ตาม

ตรวจสอบสิทธิ์ของผู้ใช้ในการกำหนดระยะเวลาการให้คะแนน

คำขอที่ส่งไปยังปลายทาง checkGradingPeriodsSetupEligibility จะได้รับอนุญาตในนามของผู้ดูแลระบบหรือครูทุกคน ใช้ข้อมูลนี้เพื่อระบุว่าผู้ใช้แก้ไขระยะเวลาการให้คะแนนในหลักสูตรได้หรือไม่

สิ่งที่ต้องดำเนินการก่อน

คู่มือนี้ให้ตัวอย่างโค้ดใน Python และจะถือว่าคุณมีสิ่งต่อไปนี้

  • โปรเจ็กต์ Google Cloud คุณสามารถตั้งค่าได้โดยทำตามวิธีการในการเริ่มต้นใช้งาน Python อย่างรวดเร็ว
  • เพิ่มขอบเขตต่อไปนี้ในหน้าจอขอความยินยอม OAuth ของโปรเจ็กต์แล้ว
    • https://www.googleapis.com/auth/classroom.courses
    • https://www.googleapis.com/auth/classroom.coursework.students
  • รหัสของหลักสูตรที่ควรแก้ไขระยะเวลาการให้คะแนน เจ้าของหลักสูตรต้องมีใบอนุญาต Google Workspace for Education Plus
  • สิทธิ์เข้าถึงข้อมูลเข้าสู่ระบบของครูหรือผู้ดูแลระบบที่มีใบอนุญาต Google Workspace for Education Plus คุณจะต้องใช้ข้อมูลเข้าสู่ระบบของครู เพื่อสร้างหรือแก้ไขหลักสูตร ผู้ดูแลระบบจะสร้างหรือแก้ไขหลักสูตร ไม่ได้หากไม่ได้เป็นครูในหลักสูตร

จัดการทรัพยากร GradingPeriodSettings

ทรัพยากร GradingPeriodSettings ประกอบด้วยรายการ GradingPeriods แต่ละรายการและช่องบูลีนชื่อ applyToExistingCoursework

รายการ GradingPeriods แสดงระยะเวลาการให้คะแนนทั้งหมดในหลักสูตร คุณต้องระบุชื่อ วันที่เริ่มต้น และวันที่สิ้นสุดสำหรับระยะเวลาการให้คะแนนแต่ละช่วงในรายการ ระยะเวลาการให้คะแนนแต่ละช่วงในหลักสูตรต้องมีชื่อไม่ซ้ำกัน และวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนที่แตกต่างกันจะทับซ้อนกันไม่ได้ ระยะเวลาการให้คะแนนแต่ละช่วงจะมีตัวระบุที่กำหนด Classroom API เป็นของตัวเอง

บูลีน applyToExistingCoursework เป็นการตั้งค่าที่ใช้งานอยู่ ซึ่งช่วยให้คุณจัดระเบียบ CourseWork ที่สร้างไว้ก่อนหน้านี้ลงในระยะเวลาการให้คะแนนได้โดยไม่ต้องเรียก API แยกต่างหากเพื่อแก้ไข gradingPeriodId สำหรับ CourseWork แต่ละรายการ หากตั้งค่าเป็น True Classroom จะกำหนด gradingPeriodId ใน CourseWork ที่มีอยู่ทั้งหมดโดยอัตโนมัติ หาก courseWork.dueDate อยู่ภายในวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนที่มีอยู่ หากไม่ได้ตั้งวันที่ครบกำหนดใน CourseWork ไว้ Classroom จะใช้ courseWork.scheduledTime หากไม่มีช่องใดช่องหนึ่งหรือไม่มีรายการที่ตรงกันภายในวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนที่มีอยู่ หลักสูตรดังกล่าวจะไม่เชื่อมโยงกับระยะเวลาการให้คะแนน

ตรวจสอบว่าผู้ใช้จะแก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้หรือไม่

เนื่องจากความสามารถในการสร้างและแก้ไขระยะเวลาการให้คะแนนใน Classroom มีให้บริการแก่ผู้ใช้ที่มีใบอนุญาตเท่านั้น Classroom API จึงมีปลายทาง checkGradingPeriodsSetupEligibility เพื่อช่วยให้คุณพิจารณาล่วงหน้าได้ว่าผู้ใช้จะส่งคำขอไปยังปลายทางของ UpdateGradingPeriodSettings ได้หรือไม่

Python

def check_grading_period_setup_eligibility(classroom, course_id):
    """Checks whether a user is able to create and modify grading periods in a course."""
    try:
        grading_period_eligibility_response = classroom.courses().checkGradingPeriodsSetupEligibility(
          courseId=course_id, previewVersion="V1_20240401_PREVIEW").execute()

        # Retrieve the isGradingPeriodsSetupEligible boolean from the response.
        # If the boolean is `True`, the user is able to modify grading period settings in the course.
        is_grading_periods_eligible = grading_period_eligibility_response.get("isGradingPeriodsSetupEligible")
        return is_grading_periods_eligible
    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

เพิ่มระยะเวลาการให้คะแนน

เมื่อแน่ใจว่าผู้ใช้มีใบอนุญาตที่จำเป็นในการแก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรแล้ว คุณก็เริ่มส่งคำขอไปยังปลายทาง UpdateGradingPeriodSettings ได้ การแก้ไขทรัพยากร GradingPeriodSettings จะดำเนินการโดยใช้ปลายทาง UpdateGradingPeriodSettings ไม่ว่าคุณจะเพิ่มระยะเวลาการให้คะแนนแต่ละรายการ แก้ไขระยะเวลาการให้คะแนนที่มีอยู่ หรือลบระยะเวลาการให้คะแนน

Python

ในตัวอย่างต่อไปนี้ ทรัพยากร gradingPeriodSettings ได้รับการแก้ไขให้มีระยะเวลาการให้คะแนน 2 ช่วง บูลีน applyToExistingCoursework ได้รับการตั้งค่าเป็น True ซึ่งจะแก้ไข gradingPeriodId ในหลักสูตรที่มีอยู่ซึ่งอยู่ระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนน โปรดทราบว่า updateMask จะมีทั้ง 2 ช่อง บันทึกรหัสสำหรับระยะเวลาการให้คะแนนแต่ละช่วงหลังจากส่งกลับมาในคำตอบ คุณจะต้องใช้รหัสเหล่านี้เพื่ออัปเดตระยะเวลาการให้คะแนน หากจำเป็น

def create_grading_periods(classroom, course_id):
    """
    Create grading periods in a course and apply the grading periods
    to existing courseWork.
    """
    try:
        body = {
          "gradingPeriods": [
            {
              "title": "First Semester",
              "start_date": {
                "day": 1,
                "month": 9,
                "year": 2023
              },
              "end_date": {
                "day": 15,
                "month": 12,
                "year": 2023
              }
            },
            {
              "title": "Second Semester",
              "start_date": {
                "day": 15,
                "month": 1,
                "year": 2024
              },
              "end_date": {
                "day": 31,
                "month": 5,
                "year": 2024
              }
            }
          ],
          "applyToExistingCoursework": True
        }
        gradingPeriodSettingsResponse = classroom.courses().updateGradingPeriodSettings(
          courseId=course_id,
          updateMask='gradingPeriods,applyToExistingCoursework',
          body=body,
          previewVersion="V1_20240401_PREVIEW"
        ).execute();

        print(f"Grading period settings updated.")
        return gradingPeriodSettingsResponse

    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

อ่านการตั้งค่าระยะเวลาการให้คะแนน

อ่าน GradingPeriodSettings โดยใช้ปลายทาง GetGradingPeriodSettings ผู้ใช้ทุกคน ไม่ว่าจะมีใบอนุญาตหรือไม่ก็ตาม จะอ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้

Python

def get_grading_period_settings(classroom, course_id):
    """Read grading periods settings in a course."""
    try:
        gradingPeriodSettings = classroom.courses().getGradingPeriodSettings(
          courseId=course_id, previewVersion="V1_20240401_PREVIEW").execute()
        return gradingPeriodSettings
    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

เพิ่มระยะเวลาการให้คะแนนแต่ละรายการลงในรายการ

การอัปเดตระยะเวลาการให้คะแนนแต่ละรายการต้องทำตามรูปแบบ Read-modify-write ซึ่งหมายความว่าคุณควรทำดังนี้

  1. อ่านรายการระยะเวลาการให้คะแนนภายในทรัพยากร GradingPeriodSettings โดยใช้ปลายทาง GetGradingPeriodSettings
  2. ทำการแก้ไขที่เลือกในรายการระยะเวลาการให้คะแนน
  3. ส่งรายการระยะเวลาการให้คะแนนใหม่ในคำขอไปยัง UpdateGradingPeriodSettings

รูปแบบนี้จะช่วยให้คุณมั่นใจได้ว่าชื่อระยะเวลาการให้คะแนนแต่ละชื่อในหลักสูตรนั้นแตกต่างกันและไม่มีความคาบเกี่ยวกันระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนน

โปรดคำนึงถึงกฎต่อไปนี้เกี่ยวกับการอัปเดตรายการระยะเวลาการให้คะแนน

  1. ระยะเวลาการให้คะแนนที่เพิ่มลงในรายการโดยไม่มีรหัสจะถือว่าเป็นส่วนเพิ่มเติม
  2. ระยะเวลาการให้คะแนนที่ไม่มีในรายการจะถือว่าเป็นการลบ
  3. ระยะเวลาการให้คะแนนที่มีรหัสอยู่แล้ว แต่ข้อมูลที่แก้ไขจะถือว่าเป็นการแก้ไข และปล่อยพร็อพเพอร์ตี้ที่ไม่มีการแก้ไขไว้ตามเดิม
  4. ระยะเวลาการให้คะแนนที่มีรหัสใหม่หรือรหัสที่ไม่รู้จักจะถือว่าเป็นข้อผิดพลาด

Python

โค้ดต่อไปนี้จะสร้างโดยอิงจากตัวอย่างในคู่มือนี้ ระบบจะสร้างระยะเวลาการให้คะแนนใหม่โดยตั้งชื่อว่า "ฤดูร้อน" บูลีน applyToExistingCoursework ได้รับการตั้งค่าเป็น False ในเนื้อหาคำขอ

ซึ่งระบบจะอ่าน GradingPeriodSettings ปัจจุบัน เพิ่มระยะเวลาการให้คะแนนใหม่ลงในรายการ และตั้งค่าบูลีน applyToExistingCoursework เป็น False โปรดทราบว่าระยะเวลาการให้คะแนนที่มีผลกับ CourseWork อยู่แล้วจะไม่ถูกนำออก ในตัวอย่างก่อนหน้านี้ มีการใช้ระยะเวลาการให้คะแนน "ภาคเรียน 1" และ "ภาคเรียน 2" กับ CourseWork ที่มีอยู่แล้ว และจะไม่นำออกจากหลักสูตรหากตั้งค่า applyToExistingCoursework เป็น "เท็จ" ในคำขอที่ตามมา

def add_grading_period(classroom, course_id):
    """
    A new grading period is added to the list, but it is not applied to existing courseWork.
    """
    try:
        # Use the `GetGradingPeriodSettings` endpoint to retrieve the existing
        # grading period IDs. You will need to include these IDs in the request
        # body to make sure existing grading periods aren't deleted.
        body = {
          "gradingPeriods": [
            {
              # Specify the ID to make sure the grading period is not deleted.
              "id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
              "title": "First Semester",
              "start_date": {
                "day": 1,
                "month": 9,
                "year": 2023
              },
              "end_date": {
                "day": 15,
                "month": 12,
                "year": 2023
              }
            },
            {
              # Specify the ID to make sure the grading period is not deleted.
              "id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
              "title": "Second Semester",
              "start_date": {
                "day": 15,
                "month": 1,
                "year": 2024
              },
              "end_date": {
                "day": 31,
                "month": 5,
                "year": 2024
              }
            },
            {
              # Does not include an ID because this grading period is an addition.
              "title": "Summer",
              "start_date": {
                "day": 1,
                "month": 6,
                "year": 2024
              },
              "end_date": {
                "day": 31,
                "month": 8,
                "year": 2024
              }
            }
          ],
          "applyToExistingCoursework": False
        }

        gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework',
          previewVersion="V1_20240401_PREVIEW").execute()
        return gradingPeriodSettings

    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

คำแนะนำที่เป็นประโยชน์เกี่ยวกับช่องบูลีน applyToExistingCoursework

โปรดทราบว่าบูลีน applyToExistingCoursework จะคงที่ ซึ่งหมายความว่าหากตั้งค่าบูลีนเป็น True ในการเรียก API ก่อนหน้าและไม่มีการเปลี่ยนแปลง การอัปเดตระยะเวลาการให้คะแนนหลังจากนั้นจะมีผลกับ CourseWork ที่มีอยู่

โปรดทราบว่าหากคุณเปลี่ยนค่าบูลีนนี้จาก True เป็น False ในคำขอเป็น UpdateGradingPeriodSettings เฉพาะการเปลี่ยนแปลงใหม่ที่คุณทำกับ GradingPeriodSettings จะไม่มีผลกับ CourseWork ที่มีอยู่ ระบบจะไม่นำข้อมูลระยะเวลาการให้คะแนนที่ใช้กับ CourseWork ในการเรียก API ก่อนหน้านี้เมื่อตั้งค่าบูลีนเป็น True วิธีที่มีประโยชน์ในการพิจารณาการตั้งค่าบูลีนนี้คือฟีเจอร์นี้รองรับการเชื่อมโยง CourseWork ที่มีอยู่กับระยะเวลาการให้คะแนนที่กำหนดค่าไว้ แต่ไม่รองรับการนำการเชื่อมโยงที่มีอยู่ระหว่าง CourseWork กับระยะเวลาการให้คะแนนที่กำหนดค่าไว้ออก

หากคุณลบหรือเปลี่ยนชื่อระยะเวลาการให้คะแนน ระบบจะนำการเปลี่ยนแปลงเหล่านั้นไปใช้ผ่าน CourseWork ทั้งหมดที่มีอยู่ ไม่ว่าการตั้งค่าบูลีน applyToExistingCoursework จะเป็นอย่างไรก็ตาม

อัปเดตระยะเวลาการให้คะแนนแต่ละรายการในรายการ

หากต้องการแก้ไขข้อมูลบางอย่างที่เชื่อมโยงกับระยะเวลาการให้คะแนนที่มีอยู่ ให้ใส่รหัสของระยะเวลาการให้คะแนนที่มีอยู่ในรายการพร้อมกับข้อมูลที่แก้ไข

Python

ในตัวอย่างนี้ วันที่สิ้นสุดของระยะเวลาการให้คะแนน "ฤดูร้อน" จะได้รับการแก้ไข ฟิลด์ applyToExistingCoursework จะถูกตั้งค่าเป็น True โปรดทราบว่าการตั้งค่าบูลีนนี้เป็น True จะใช้ระยะเวลาการให้คะแนนที่กำหนดค่าไว้ทั้งหมดกับ CourseWork ที่มีอยู่ ในคำขอ API ก่อนหน้านี้ มีการตั้งค่าบูลีนเป็น False เพื่อไม่ให้ระยะเวลาการให้คะแนน "ฤดูร้อน" มีผลกับ CourseWork ที่มีอยู่ เมื่อตั้งค่าช่องบูลีนนี้เป็น True แล้ว ระบบจะใช้ระยะเวลาการให้คะแนน "ฤดูร้อน" กับ CourseWork ที่มีอยู่ทั้งหมดที่ตรงกัน

def update_existing_grading_period(classroom, course_id):
    """
    An existing grading period is updated.
    """
    try:
        # Use the `GetGradingPeriodSettings` endpoint to retrieve the existing
        # grading period IDs. You will need to include these IDs in the request
        # body to make sure existing grading periods aren't deleted.
        body = {
          "gradingPeriods": [
            {
              "id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
              "title": "First Semester",
              "start_date": {
                "day": 1,
                "month": 9,
                "year": 2023
              },
              "end_date": {
                "day": 15,
                "month": 12,
                "year": 2023
              }
            },
            {
              "id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
              "title": "Second Semester",
              "start_date": {
                "day": 15,
                "month": 1,
                "year": 2024
              },
              "end_date": {
                "day": 31,
                "month": 5,
                "year": 2024
              }
            },
            {
              # The end date for this grading period will be modified from August 31, 2024 to September 10, 2024.
              # Include the grading period ID in the request along with the new data.
              "id": "SUMMER_GRADING_PERIOD_ID",
              "title": "Summer",
              "start_date": {
                "day": 1,
                "month": 6,
                "year": 2024
              },
              "end_date": {
                "day": 10,
                "month": 9,
                "year": 2024
              }
            }
          ],
          "applyToExistingCoursework": True
        }

        gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework',
          previewVersion="V1_20240401_PREVIEW").execute()
        return gradingPeriodSettings

    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

ลบระยะเวลาการให้คะแนนแต่ละช่วง

หากต้องการลบระยะเวลาการให้คะแนน ให้ข้ามระยะเวลาการให้คะแนนในรายการ โปรดทราบว่าหากลบระยะเวลาการให้คะแนน ระบบจะลบการอ้างอิงถึงระยะเวลาการให้คะแนนใน CourseWork ด้วยไม่ว่าการตั้งค่า applyToExistingCoursework จะเป็นอย่างไรก็ตาม

Python

หากต้องการดูตัวอย่างในคู่มือนี้ต่อไป ให้ลบระยะเวลาการให้คะแนน "ฤดูร้อน" ออก

def delete_grading_period(classroom, course_id):
    """
    An existing grading period is deleted.
    """
    try:
        body = {
          "gradingPeriods": [
            {
              "id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
              "title": "First Semester",
              "start_date": {
                "day": 1,
                "month": 9,
                "year": 2023
              },
              "end_date": {
                "day": 15,
                "month": 12,
                "year": 2023
              }
            },
            {
              "id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
              "title": "Second Semester",
              "start_date": {
                "day": 15,
                "month": 1,
                "year": 2024
              },
              "end_date": {
                "day": 31,
                "month": 5,
                "year": 2024
              }
            }
          ]
        }

        gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods',
          previewVersion="V1_20240401_PREVIEW").execute()
        return gradingPeriodSettings

    except HttpError as error:
        # Handle errors as appropriate for your application.
        print(f"An error occurred: {error}")
        return error

จัดการช่อง gradingPeriodId ใน CourseWork

แหล่งข้อมูลใน CourseWork จะมีช่อง gradingPeriodId คุณจะใช้อุปกรณ์ปลายทาง CourseWork เพื่ออ่านและเขียนระยะเวลาการให้คะแนนที่เชื่อมโยงกับ CoessWork ได้ การจัดการการเชื่อมโยงนี้มี 3 วิธีดังนี้

  • การเชื่อมโยงระยะเวลาการให้คะแนนอัตโนมัติโดยอ้างอิงวันที่
  • ระยะเวลาการให้คะแนนที่เกี่ยวข้องที่กำหนดเอง
  • ไม่มีการเชื่อมโยงระยะเวลาการให้คะแนน

1. การเชื่อมโยงระยะเวลาการให้คะแนนตามวันที่

เมื่อสร้าง CourseWork คุณสามารถอนุญาตให้ Classroom จัดการการเชื่อมโยงระยะเวลาการให้คะแนนให้คุณได้ โดยข้ามช่อง gradingPeriodId ในคำขอ CourseWork จากนั้นระบุช่อง dueDate หรือ scheduledTime ในคำขอ CourseWork หาก dueDate อยู่ในช่วงวันที่การให้คะแนนที่มีอยู่ Classroom จะกำหนดรหัสระยะเวลาการให้คะแนนดังกล่าวใน CourseWork หากไม่ได้ระบุช่อง dueDate Classroom จะกำหนด gradingPeriodId ตามช่อง scheduledTime หากไม่มีการระบุช่องหรือไม่มีช่วงวันที่ของระยะเวลาการให้คะแนนที่ตรงกัน ระบบจะไม่ตั้งค่า gradingPeriodId ใน CourseWork

2. ระยะเวลาการให้คะแนนที่เกี่ยวข้องที่กำหนดเอง

หากต้องการเชื่อมโยงหลักสูตรของงานกับระยะเวลาการให้คะแนนที่แตกต่างจากระยะเวลาการให้คะแนนที่สอดคล้องกับ dueDate หรือ scheduledTime ให้ตั้งค่าช่อง gradingPeriodId ด้วยตนเองเมื่อสร้างหรืออัปเดต CourseWork หากคุณตั้งค่า gradingPeriodId ด้วยตนเอง Classroom จะไม่เชื่อมโยงระยะเวลาการให้คะแนนตามวันที่โดยอัตโนมัติ

3. ไม่มีการเชื่อมโยงระยะเวลาการให้คะแนน

หากไม่ต้องการให้ CourseWork เชื่อมโยงกับระยะเวลาการให้คะแนนใดๆ เลย ให้ตั้งค่าช่อง gradingPeriodId ในคำขอ CourseWork เป็นสตริงว่าง (gradingPeriodId: "")

หากอัปเดตวันที่ครบกำหนดแล้ว รหัสระยะเวลาการให้คะแนนจะเป็นอย่างไร

หากกำลังอัปเดตช่อง dueDate ของ CourseWork และต้องการคงการเชื่อมโยงระยะเวลาการให้คะแนนที่กำหนดเองหรือไม่มีการเชื่อมโยงระยะเวลาการให้คะแนนไว้ คุณควรใส่ dueDate และ gradingPeriodId ในเนื้อหา updateMask และคำขอ การดำเนินการนี้จะบอกให้ Classroom ไม่ลบล้าง gradingPeriodId ด้วยระยะเวลาการให้คะแนนที่ตรงกับ dueDate ใหม่

Python

body = {
  "dueDate": {
    "month": 6,
    "day": 10,
    "year": 2024
  },
  "dueTime": {
    "hours": 7
  },
  "gradingPeriodId": "<INSERT-GRADING-PERIOD-ID-OR-EMPTY-STRING>"
}
courseWork = classroom.courses().courseWork().patch(
  courseId=course_id, id=coursework_id, body=body,
  updateMask='dueDate,dueTime,gradingPeriodId', # include the gradingPeriodId field in the updateMask
  previewVersion="V1_20240401_PREVIEW").execute()