จัดการระยะเวลาการให้คะแนนโดยใช้ 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 คือการตั้งค่าแบบถาวรที่ช่วยให้คุณจัดระเบียบงานที่ทำก่อนหน้านี้เป็นระยะเวลาการให้คะแนนได้โดยไม่ต้องเรียกใช้ API แยกต่างหากเพื่อแก้ไข gradingPeriodId ของงานแต่ละรายการ หากตั้งค่าเป็น True Classroom จะกำหนด gradingPeriodId ใน CourseWork ที่มีอยู่ทั้งหมดโดยอัตโนมัติ หาก courseWork.dueDate อยู่ภายในวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนที่มีอยู่ หากไม่ได้กำหนดวันที่ครบกำหนดในชิ้นงาน 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 ใน Coursework ที่มีอยู่ซึ่งอยู่ในช่วงวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนน 1 ระยะเวลา โปรดทราบว่า 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 boolean มีการตั้งค่าเป็น False ในเนื้อหาคําขอ

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

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 เท่านั้นที่จะไม่ส่งผลกับงานที่มีอยู่ ระบบจะไม่นำข้อมูลระยะเวลาการให้คะแนนที่ใช้กับงานในคอร์สในคําเรียก API ก่อนหน้านี้ออกเมื่อตั้งค่าบูลีนเป็น True วิธีที่ดีในการคิดเกี่ยวกับการตั้งค่าบูลีนนี้ก็คือการตั้งค่านี้รองรับการเชื่อมโยงงานที่มีอยู่กับระยะเวลาการให้คะแนนที่กำหนดค่าไว้ แต่ไม่รองรับการนำการเชื่อมโยงที่มีอยู่ระหว่างงานกับระยะเวลาการให้คะแนนที่กำหนดค่าไว้ออก

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

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

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

Python

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

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

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

หากต้องการลบระยะเวลาการให้คะแนน ให้ยกเว้นระยะเวลาการให้คะแนนนั้นจากรายการ โปรดทราบว่าหากมีการลบระยะเวลาการให้คะแนน ระบบจะลบการอ้างอิงระยะเวลาการให้คะแนนในหลักสูตรด้วย ไม่ว่าจะมีการตั้งค่า 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 คุณสามารถใช้ปลายทางของ "งาน" เพื่ออ่านและเขียนระยะเวลาการให้คะแนนที่เชื่อมโยงกับ "งาน" ได้ การจัดการการเชื่อมโยงนี้ทำได้ 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()