คู่มือนี้อธิบายวิธีใช้ปลายทางระยะเวลาการให้คะแนนใน 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
ในนามของผู้ดูแลระบบหรือครูของโดเมน
ตั้งค่ารหัสระยะเวลาการให้คะแนนใน CourseWork
ครูผู้สอนหลักสูตรจะรวม gradingPeriodId
เมื่อสร้างหรืออัปเดต
CourseWork โดยใช้ API ได้ไม่ว่าระบบจะกำหนดใบอนุญาตใดให้ก็ตาม
ตรวจสอบสิทธิ์ของผู้ใช้ในการตั้งค่าช่วงการให้คะแนน
ระบบอนุญาตคำขอไปยังปลายทาง userProfiles.checkUserCapability
ในนามของผู้ดูแลระบบหรือครู ใช้เพื่อกำหนดว่า
ผู้ใช้จะแก้ไขระยะเวลาการให้คะแนนได้หรือไม่
ข้อกำหนดเบื้องต้น
คู่มือนี้มีตัวอย่างโค้ดใน 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.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
จะไม่มีผลกับงานในชั้นเรียนที่มีอยู่ ระบบจะไม่นำข้อมูลช่วงการให้คะแนน
ที่ใช้กับงานในชั้นเรียนในการเรียก 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
แหล่งข้อมูล CourseWork มีช่อง gradingPeriodId
คุณสามารถใช้
ปลายทาง CourseWork เพื่ออ่านและเขียนระยะเวลาการให้คะแนนที่เชื่อมโยงกับ
งานในชั้นเรียนได้ คุณจัดการการเชื่อมโยงนี้ได้ 3 วิธีดังนี้
- การเชื่อมโยงระยะเวลาการให้คะแนนตามวันที่โดยอัตโนมัติ
- ระยะเวลาการให้คะแนนที่เชื่อมโยงที่กำหนดเอง
- ไม่มีการเชื่อมโยงระยะเวลาการให้คะแนน
1. การเชื่อมโยงระยะเวลาการให้คะแนนตามวันที่
เมื่อสร้างงานใน CourseWork คุณสามารถอนุญาตให้ Classroom จัดการ
การเชื่อมโยงช่วงการให้คะแนนให้คุณได้ โดยให้ละเว้นฟิลด์ gradingPeriodId
จากคำขอ CourseWork จากนั้นระบุฟิลด์ 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
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_service.courses().courseWork().patch(
courseId=course_id, id=coursework_id, body=body,
updateMask='dueDate,dueTime,gradingPeriodId') # include the gradingPeriodId field in the updateMask
.execute()