คู่มือนี้อธิบายวิธีใช้ปลายทางระยะเวลาการให้คะแนนใน Google Classroom API
ภาพรวม
ระยะเวลาการให้คะแนนสร้างขึ้นเพื่อจัดระเบียบการบ้าน แบบทดสอบ และโปรเจ็กต์ เป็นช่วงวันที่ที่เฉพาะเจาะจง Classroom API ช่วยให้นักพัฒนาซอฟต์แวร์สร้าง แก้ไข และอ่านระยะเวลาการให้คะแนนใน Classroom ได้ในนามของผู้ดูแลระบบและครู นอกจากนี้ คุณยังใช้ Classroom API เพื่อ ตั้งค่าช่วงการให้คะแนนในงานในชั้นเรียนได้ด้วย
Classroom API มีอุปกรณ์ปลายทาง 2 รายการสำหรับอ่านและเขียนข้อมูลระยะเวลาการให้คะแนนในหลักสูตร ดังนี้
GetGradingPeriodSettings: ให้คุณอ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้UpdateGradingPeriodSettings: ให้คุณจัดการการตั้งค่าระยะเวลาการให้คะแนนใน หลักสูตรโดยการเพิ่ม แก้ไข และลบระยะเวลาการให้คะแนน รวมถึงใช้ ระยะเวลาการให้คะแนนที่กำหนดค่ากับงานในชั้นเรียนที่มีอยู่ทั้งหมด
ข้อกำหนดของการออกใบอนุญาตและการมีสิทธิ์
แก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร
หากต้องการสร้าง แก้ไข หรือลบระยะเวลาการให้คะแนนในหลักสูตรโดยใช้ปลายทาง UpdateGradingPeriodSettings จะต้องเป็นไปตามเงื่อนไขต่อไปนี้
- ผู้ใช้ที่ส่งคำขอต้องเป็นครูในหลักสูตรหรือผู้ดูแลระบบ
- ผู้ใช้ที่ส่งคำขอมีใบอนุญาต Google Workspace for Education Plus ที่มอบหมายให้
- เจ้าของหลักสูตรมีใบอนุญาต Google Workspace for Education Plus ที่มอบหมายให้
อ่านการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร
ผู้ดูแลระบบโดเมนและครูผู้สอนหลักสูตรจะอ่านการตั้งค่าระยะเวลาการให้คะแนนได้ ไม่ว่าจะมีใบอนุญาตใดก็ตาม ซึ่งหมายความว่าคำขอไปยังปลายทาง GetGradingPeriodSettings จะได้รับอนุญาตในนามของผู้ดูแลระบบหรือครูของโดเมนใดก็ได้
ตั้งค่ารหัสระยะเวลาการให้คะแนนในการบ้านและรายงาน
ครูผู้สอนหลักสูตรจะรวม gradingPeriodId เมื่อสร้างหรืออัปเดต
CourseWork โดยใช้ API ได้ไม่ว่าระบบจะมอบหมายใบอนุญาตใดให้ก็ตาม
ตรวจสอบสิทธิ์ของผู้ใช้ในการตั้งค่าช่วงการให้คะแนน
ระบบอนุญาตคำขอไปยังปลายทาง userProfiles.checkUserCapability
ในนามของผู้ดูแลระบบหรือครู ใช้เพื่อกำหนดว่าผู้ใช้จะแก้ไขช่วงการให้คะแนนได้หรือไม่
ข้อกำหนดเบื้องต้น
คู่มือนี้มีตัวอย่างโค้ดใน Python และถือว่าคุณมีสิ่งต่อไปนี้
- โปรเจ็กต์ Google Cloud คุณตั้งค่าได้โดยทำตามวิธีการในการเริ่มต้นใช้งาน Python ฉบับย่อ
- เพิ่มขอบเขตต่อไปนี้ลงในหน้าจอขอความยินยอม OAuth ของโปรเจ็กต์
https://www.googleapis.com/auth/classroom.courseshttps://www.googleapis.com/auth/classroom.coursework.students
- รหัสของหลักสูตรที่ควรแก้ไขช่วงเวลาการให้คะแนน เจ้าของหลักสูตรต้องมีใบอนุญาต Google Workspace for Education Plus
- สิทธิ์เข้าถึงข้อมูลเข้าสู่ระบบของครูหรือผู้ดูแลระบบที่มีใบอนุญาต Google Workspace for Education Plus คุณจะต้องมีข้อมูลเข้าสู่ระบบของครู เพื่อสร้างหรือแก้ไขงานในชั้นเรียน ผู้ดูแลระบบจะสร้างหรือแก้ไข งานในชั้นเรียนไม่ได้หากไม่ได้เป็นครูในหลักสูตร
จัดการทรัพยากร GradingPeriodSettings
แหล่งข้อมูล GradingPeriodSettings มีรายการGradingPeriodsแต่ละรายการและฟิลด์บูลีนที่ชื่อ applyToExistingCoursework
ตรวจสอบว่า GradingPeriods แต่ละรายการในลิสต์เป็นไปตามข้อกำหนดต่อไปนี้
- ชื่อ วันที่เริ่มต้น และวันที่สิ้นสุด: ระยะเวลาการให้คะแนนแต่ละรายการต้องมีชื่อ วันที่เริ่มต้น และวันที่สิ้นสุด
- ชื่อที่ไม่ซ้ำกัน: ระยะเวลาการให้คะแนนแต่ละระยะต้องมีชื่อที่ไม่ซ้ำกันและต้องไม่ ตรงกับระยะเวลาการให้คะแนนอื่นๆ ในหลักสูตร
- วันที่ไม่ทับซ้อนกัน: ระยะเวลาการให้คะแนนแต่ละช่วงต้องไม่มีวันที่เริ่มต้นหรือสิ้นสุด ที่ทับซ้อนกับระยะเวลาการให้คะแนนอื่นๆ ในหลักสูตร
- ลำดับเวลา: ต้องแสดงระยะเวลาการให้คะแนนตามลำดับเวลา โดยอิงตามวันที่เริ่มต้นและวันที่สิ้นสุด
ระบบจะกำหนดตัวระบุที่ API ของ Classroom กำหนดให้แก่ระยะเวลาการให้คะแนนแต่ละช่วงเมื่อสร้าง
บูลีน applyToExistingCoursework เป็นการตั้งค่าที่คงอยู่ซึ่งช่วยให้คุณจัดระเบียบงานในชั้นเรียนที่สร้างไว้ก่อนหน้านี้เป็นช่วงการให้คะแนนได้โดยไม่ต้องทำการเรียก API แยกต่างหากเพื่อแก้ไข gradingPeriodId สำหรับงานในชั้นเรียนแต่ละรายการ หากตั้งค่าเป็น True Classroom จะตั้งค่า gradingPeriodId ในงานของชั้นเรียนที่มีอยู่ทั้งหมดโดยอัตโนมัติ หาก courseWork.dueDate อยู่ภายในวันที่เริ่มต้นและวันที่สิ้นสุดของช่วงการให้คะแนนที่มีอยู่ หากไม่ได้ตั้งวันที่ครบกำหนดในการบ้านและรายงาน Classroom
จะใช้courseWork.scheduledTime หากไม่มีทั้ง 2 ฟิลด์หรือไม่มีการจับคู่ภายในวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนนที่มีอยู่
ระบบจะไม่เชื่อมโยง CourseWork กับระยะเวลาการให้คะแนนใดๆ
กำหนดว่าผู้ใช้จะแก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรได้หรือไม่
Classroom API
มีuserProfiles.checkUserCapabilityปลายทางที่จะช่วยให้คุณ
พิจารณาได้ล่วงหน้าว่าผู้ใช้จะส่งคำขอไปยังUpdateGradingPeriodSettingsปลายทางได้หรือไม่
Python
def check_grading_periods_update_capability(classroom_service, course_id):
"""Checks whether a user is able to create and modify grading periods in a course."""
try:
capability = classroom_service.userProfiles().checkUserCapability(
userId="me",
capability="UPDATE_GRADING_PERIOD_SETTINGS",
# Required while the checkUserCapability method is available in the Developer Preview Program.
previewVersion="V1_20240930_PREVIEW"
).execute()
# Retrieve the `allowed` boolean from the response.
if capability.get("allowed"):
print("User is allowed to update grading period settings in the course.")
else:
print("User is not allowed to update grading period settings in the course.")
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
เพิ่มระยะเวลาการให้คะแนน
ตอนนี้คุณมั่นใจแล้วว่าผู้ใช้มีสิทธิ์แก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตร คุณก็เริ่มส่งคำขอไปยังUpdateGradingPeriodSettingsปลายทางได้ การแก้ไขGradingPeriodSettings แหล่งข้อมูลUpdateGradingPeriodSettings จะดำเนินการโดยใช้ปลายทางGradingPeriodSettings ไม่ว่าคุณจะเพิ่มระยะเวลาการให้คะแนนแต่ละช่วง แก้ไขระยะเวลาการให้คะแนนที่มีอยู่ หรือลบระยะเวลาการให้คะแนน
Python
ในตัวอย่างต่อไปนี้ มีการแก้ไขทรัพยากร gradingPeriodSettings
เพื่อให้มีช่วงการให้คะแนน 2 ช่วง บูลีน applyToExistingCoursework จะ
ตั้งค่าเป็น True ซึ่งจะแก้ไข gradingPeriodId ใน
CourseWork ที่มีอยู่ซึ่งอยู่ระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดของระยะเวลาการให้คะแนน โปรดทราบ
ว่า updateMask มีทั้ง 2 ช่อง บันทึกรหัสสำหรับช่วงการให้คะแนนแต่ละช่วงเมื่อได้รับรหัสในการตอบกลับ คุณจะต้องใช้รหัสเหล่านี้เพื่ออัปเดตระยะเวลาการให้คะแนนหากจำเป็น
def create_grading_periods(classroom_service, 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_service.courses().updateGradingPeriodSettings(
courseId=course_id,
updateMask='gradingPeriods,applyToExistingCoursework',
body=body
).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_service, course_id):
"""Read grading periods settings in a course."""
try:
gradingPeriodSettings = classroom_service.courses().getGradingPeriodSettings(
courseId=course_id).execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
เพิ่มระยะเวลาการให้คะแนนแต่ละรายการลงในรายการ
การอัปเดตระยะเวลาการให้คะแนนแต่ละรายการต้องทำตามรูปแบบ อ่าน-แก้ไข-เขียน ซึ่งหมายความว่าคุณควรทำดังนี้
- อ่านรายการระยะเวลาการให้คะแนนภายใน
GradingPeriodSettingsทรัพยากร โดยใช้ปลายทางGetGradingPeriodSettings - ทำการแก้ไขที่เลือกในรายการระยะเวลาการให้คะแนน
- ส่งรายการระยะเวลาการให้คะแนนใหม่ในคำขอไปที่
UpdateGradingPeriodSettings
รูปแบบนี้จะช่วยให้คุณมั่นใจว่าชื่อระยะเวลาการให้คะแนนแต่ละรายการใน หลักสูตรจะแตกต่างกัน และวันที่เริ่มต้นและวันที่สิ้นสุดของ ระยะเวลาการให้คะแนนจะไม่ทับซ้อนกัน
โปรดทราบกฎต่อไปนี้เกี่ยวกับการอัปเดตรายการระยะเวลาการให้คะแนน
- ระยะเวลาการให้คะแนนที่เพิ่มลงในรายการโดยไม่มีรหัสจะถือเป็น การเพิ่ม
- ระยะเวลาการให้คะแนนที่ไม่มีในรายการจะถือเป็นการลบ
- ระบบจะถือว่าระยะเวลาการให้คะแนนที่มีรหัสอยู่แล้วแต่มีการแก้ไขข้อมูลเป็นการแก้ไข ส่วนพร็อพเพอร์ตี้ที่ไม่ได้แก้ไขจะยังคงเหมือนเดิม
- ระยะเวลาการให้คะแนนที่มีรหัสใหม่หรือรหัสที่ไม่รู้จักถือเป็นข้อผิดพลาด
Python
โค้ดต่อไปนี้จะสร้างขึ้นจากตัวอย่างในคู่มือนี้ ระบบจะสร้างช่วงการให้คะแนนใหม่โดยมีชื่อว่า "ฤดูร้อน" ตั้งค่า applyToExistingCoursework
บูลีนเป็น False ในเนื้อความของคำขอ
โดยระบบจะอ่านGradingPeriodSettingsปัจจุบัน เพิ่มช่วงการให้คะแนนใหม่ลงในรายการ และตั้งค่าบูลีน applyToExistingCoursework เป็น False โปรดทราบว่าระบบจะไม่นำระยะเวลาการให้คะแนนที่ใช้กับงานในชั้นเรียนที่มีอยู่แล้วออก
ในตัวอย่างก่อนหน้า
ระบบได้ใช้ช่วงการให้คะแนน "ภาคเรียนที่ 1" และ "ภาคเรียนที่ 2" กับ
งานในชั้นเรียนที่มีอยู่แล้ว และจะไม่นำออกจากงานในชั้นเรียนหาก
applyToExistingCoursework ตั้งค่าเป็น False ในคำขอที่ตามมา
def add_grading_period(classroom_service, 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_service.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework').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 ก่อนหน้าและไม่ได้เปลี่ยนแปลง การอัปเดตช่วงการให้คะแนนในภายหลังจะนำไปใช้กับงานในชั้นเรียนที่มีอยู่
โปรดทราบว่าหากคุณเปลี่ยนค่าบูลีนนี้จาก True เป็น False ในคำขอ
ถึง UpdateGradingPeriodSettings เฉพาะการเปลี่ยนแปลงใหม่ที่คุณทำกับ
GradingPeriodSettings จะไม่มีผลกับงานในชั้นเรียนที่มีอยู่ ระบบจะไม่นำข้อมูลระยะเวลาการให้คะแนน
ที่ใช้กับ CourseWork ในการเรียก API ก่อนหน้านี้ออกเมื่อตั้งค่าบูลีนเป็น True วิธีที่ช่วยให้เข้าใจการตั้งค่าบูลีนนี้ได้ง่ายขึ้นคือการตั้งค่านี้รองรับการเชื่อมโยงงานในชั้นเรียนที่มีอยู่กับช่วงการให้คะแนนที่กำหนดค่าไว้ แต่ไม่รองรับการนำการเชื่อมโยงที่มีอยู่ระหว่างงานในชั้นเรียนกับช่วงการให้คะแนนที่กำหนดค่าไว้ออก
หากคุณลบหรือเปลี่ยนชื่อระยะเวลาการให้คะแนน ระบบจะส่งต่อการเปลี่ยนแปลงเหล่านั้นไปยังงานในชั้นเรียนที่มีอยู่ทั้งหมด ไม่ว่าการตั้งค่าของบูลีน applyToExistingCoursework จะเป็นอย่างไร
อัปเดตระยะเวลาการให้คะแนนแต่ละรายการในรายการ
หากต้องการแก้ไขข้อมูลบางอย่างที่เชื่อมโยงกับระยะเวลาการให้คะแนนที่มีอยู่ ให้ใส่รหัสของระยะเวลาการให้คะแนนที่มีอยู่ในรายการพร้อมกับข้อมูลที่แก้ไข
Python
ในตัวอย่างนี้ ระบบจะแก้ไขวันที่สิ้นสุดของช่วงการให้คะแนน "ฤดูร้อน" ระบบจะตั้งค่าฟิลด์ applyToExistingCoursework เป็น True โปรดทราบ
ว่าการตั้งค่าบูลีนนี้เป็น True จะใช้ระยะเวลาการให้คะแนนที่กำหนดค่าไว้ทั้งหมดกับงานในชั้นเรียนที่มีอยู่ ในคำขอ API ก่อนหน้านี้ มีการตั้งค่าบูลีนเป็น False เพื่อไม่ให้ใช้ระยะเวลาการให้คะแนน "ฤดูร้อน" กับงานในชั้นเรียนที่มีอยู่ ตอนนี้เมื่อตั้งค่าช่องบูลีนนี้เป็น True ระบบจะใช้ระยะเวลาการให้คะแนน "ฤดูร้อน" กับงานในชั้นเรียนที่มีอยู่ทั้งหมดที่ตรงกัน
def update_existing_grading_period(classroom_service, 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_service.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework').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_service, 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_service.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods').execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
จัดการฟิลด์ gradingPeriodId ในงานในชั้นเรียน
ทรัพยากร CourseWork มีช่อง gradingPeriodId คุณสามารถใช้ปลายทางของ
งานในชั้นเรียนเพื่ออ่านและเขียนระยะเวลาการให้คะแนนที่เชื่อมโยงกับ
งานในชั้นเรียนได้ คุณจัดการการเชื่อมโยงนี้ได้ 3 วิธีดังนี้
- การเชื่อมโยงระยะเวลาการให้คะแนนตามวันที่โดยอัตโนมัติ
- ระยะเวลาการให้คะแนนที่เชื่อมโยงที่กำหนดเอง
- ไม่มีการเชื่อมโยงระยะเวลาการให้คะแนน
1. การเชื่อมโยงระยะเวลาการให้คะแนนตามวันที่
เมื่อสร้างการบ้านและรายงาน คุณสามารถอนุญาตให้ Classroom จัดการการเชื่อมโยงระยะเวลาการให้คะแนนให้คุณได้ โดยให้ละเว้นฟิลด์ gradingPeriodId ในคำขอการบ้านและรายงาน จากนั้นระบุฟิลด์ dueDate หรือ scheduledTime
ในคำขอ CourseWork หากdueDateอยู่ในช่วงวันที่ของระยะเวลาการให้คะแนนที่มีอยู่ Classroom จะตั้งค่ารหัสระยะเวลาการให้คะแนนนั้นใน CourseWork หากไม่ได้ระบุฟิลด์ dueDate
Classroom จะกำหนด gradingPeriodId ตามฟิลด์
scheduledTime หากไม่ได้ระบุทั้ง 2 ฟิลด์ หรือหากไม่มีช่วงวันที่ของระยะเวลาการให้คะแนนที่ตรงกัน ระบบจะไม่ตั้งค่า gradingPeriodId ใน CourseWork
2. ระยะเวลาการให้คะแนนที่เชื่อมโยงที่กำหนดเอง
หากต้องการเชื่อมโยงการบ้านและรายงานกับระยะเวลาการให้คะแนนอื่น
ที่ไม่สอดคล้องกับ dueDate หรือ scheduledTime คุณสามารถตั้งค่าฟิลด์ gradingPeriodId ด้วยตนเอง
เมื่อสร้างหรืออัปเดตการบ้านและรายงาน หากคุณ
ตั้งค่า gradingPeriodId ด้วยตนเอง Classroom จะไม่
เชื่อมโยงระยะเวลาการให้คะแนนตามวันที่โดยอัตโนมัติ
3. ไม่มีการเชื่อมโยงระยะเวลาการให้คะแนน
หากไม่ต้องการเชื่อมโยงการบ้านและรายงานกับระยะเวลาการให้คะแนนใดๆ ให้ตั้งค่าฟิลด์ gradingPeriodId ในคำขอการบ้านและรายงานเป็นสตริงว่าง (gradingPeriodId: "")
หากคุณใช้ภาษาโปรแกรม Go และต้องการตั้งค่า
ไม่มีระยะเวลาการให้คะแนน คุณควรใส่ฟิลด์ ForceSendFields ใน
เนื้อหาคำขอด้วย ไลบรารีของไคลเอ็นต์ Go จะละเว้นค่าเริ่มต้นจากคำขอ API เนื่องจากมีแท็กฟิลด์ omitempty ในทุกฟิลด์
ฟิลด์ ForceSendFields จะข้ามขั้นตอนนี้และส่งสตริงที่ว่างเปล่าเพื่อระบุว่าคุณไม่ต้องการตั้งค่าระยะเวลาการให้คะแนนสำหรับงานในชั้นเรียนนั้น ดูข้อมูลเพิ่มเติมได้ที่
เอกสารประกอบของไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Go
Go
courseWork := &classroom.CourseWork{
Title: "Homework questions",
WorkType: "ASSIGNMENT",
State: "DRAFT",
// ...other CourseWork fields...
GradingPeriodId: "",
ForceSendFields: []string{"GradingPeriodId"},
}
จะเกิดอะไรขึ้นกับรหัสระยะเวลาการให้คะแนนหากมีการอัปเดตวันที่ครบกำหนด
หากคุณกำลังอัปเดตฟิลด์ dueDate งานในชั้นเรียนและต้องการเก็บการเชื่อมโยงระยะเวลาการให้คะแนนที่กำหนดเองหรือไม่มีการเชื่อมโยงระยะเวลาการให้คะแนนไว้ คุณควรใส่ 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_service.courses().courseWork().patch(
courseId=course_id, id=coursework_id, body=body,
updateMask='dueDate,dueTime,gradingPeriodId') # include the gradingPeriodId field in the updateMask
.execute()