คู่มือนี้จะอธิบายวิธีใช้ปลายทางระยะเวลาการให้คะแนนใน Google Classroom API
ภาพรวม
ระยะเวลาการให้คะแนนสร้างขึ้นเพื่อจัดระเบียบการบ้าน แบบทดสอบ และโปรเจ็กต์เป็นช่วงวันที่ที่เฉพาะเจาะจง Classroom API ช่วยให้นักพัฒนาซอฟต์แวร์สร้าง แก้ไข และอ่านระยะเวลาการให้คะแนนใน Classroom ในนามของผู้ดูแลระบบและครูได้ นอกจากนี้ คุณยังใช้ Classroom API เพื่อกำหนดระยะเวลาการให้คะแนนใน Coursework ได้ด้วย
Classroom API มีปลายทาง 2 จุดสำหรับอ่านและเขียนข้อมูลระยะเวลาการให้คะแนนในหลักสูตร ดังนี้
GetGradingPeriodSettings
: ช่วยให้คุณอ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้UpdateGradingPeriodSettings
: ช่วยให้คุณจัดการการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้โดยการเพิ่ม แก้ไข และลบระยะเวลาการให้คะแนน รวมถึงนำระยะเวลาการให้คะแนนที่กำหนดค่าไว้ไปใช้กับงานทั้งหมดที่มีในหลักสูตร
ข้อกำหนดของใบอนุญาต
แก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร
หากต้องการสร้าง แก้ไข หรือลบระยะเวลาการให้คะแนนในหลักสูตรโดยใช้ปลายทาง UpdateGradingPeriodSettings
จะต้องมีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้
- ผู้ใช้ที่ส่งคำขอมีใบอนุญาต Google Workspace for Education Plus มอบหมายให้
- เจ้าของหลักสูตรมีใบอนุญาต Google Workspace for Education Plus ที่มอบหมายให้
อ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร
ผู้ดูแลระบบโดเมนและครูของหลักสูตรจะอ่านการตั้งค่าระยะเวลาการให้คะแนนได้ ไม่ว่าจะได้รับมอบหมายใบอนุญาตใดก็ตาม ซึ่งหมายความว่าคำขอที่ส่งไปยังปลายทาง 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 ซึ่งหมายความว่าคุณควรทำดังนี้
- อ่านรายการระยะเวลาการให้คะแนนภายใน
GradingPeriodSettings
ทรัพยากร ใช้ปลายทางGetGradingPeriodSettings
- ทำการแก้ไขรายการระยะเวลาการให้คะแนนที่เลือก
- ส่งรายการระยะเวลาการให้คะแนนใหม่ในคำขอไปที่
UpdateGradingPeriodSettings
รูปแบบนี้จะช่วยให้แน่ใจว่าชื่อระยะเวลาการให้คะแนนแต่ละรายการในหลักสูตรไม่ซ้ำกันและวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนไม่ทับซ้อนกัน
โปรดคำนึงถึงกฎต่อไปนี้เกี่ยวกับการอัปเดตรายการระยะเวลาการให้คะแนน
- ระบบจะถือว่าระยะเวลาการให้คะแนนที่เพิ่มลงในรายการโดยไม่มีรหัสเป็นการเพิ่ม
- หากไม่มีระยะเวลาการให้คะแนนในรายการ ระบบจะถือว่ามีการลบ
- ระยะเวลาการให้คะแนนที่มีรหัสอยู่แล้ว แต่ข้อมูลที่มีการแก้ไขจะถือว่าเป็นการแก้ไข และปล่อยพร็อพเพอร์ตี้ที่ไม่มีการแก้ไขไว้ตามเดิม
- ระยะเวลาการให้คะแนนที่มีรหัสใหม่หรือรหัสที่ไม่รู้จักจะถือเป็นข้อผิดพลาด
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()