UI ของ Classroom รองรับงานของชั้นเรียน 5 ประเภท ได้แก่ งาน
งานแบบทดสอบ คำถามที่ต้องการคำตอบสั้นๆ คำถามแบบหลายตัวเลือก และ
เนื้อหา ขณะนี้ Classroom API รองรับประเภทต่อไปนี้ 3 ประเภท ซึ่ง
มีชื่อเรียกอีกอย่างว่า CourseWorkType
สำหรับ API: Assignments คำตอบแบบสั้น
และคำถามแบบหลายตัวเลือก
หากต้องการเข้าถึงฟังก์ชันนี้ คุณสามารถใช้ แหล่งข้อมูลของหลักสูตร ซึ่งแสดงถึงงานหรือคำถามที่มอบหมายให้กับนักเรียนใน หลักสูตรหนึ่งๆ ซึ่งรวมถึงสื่อการเรียนการสอนเพิ่มเติมและรายละเอียด เช่น กำหนดส่ง วันที่หรือคะแนนสูงสุด
นอกเหนือจากทรัพยากรใน CourseWork แล้ว คุณยังจัดการงานที่ทำเสร็จแล้วได้
ที่มีทรัพยากร StudentSubmission
ส่วนต่อไปนี้จะอธิบายเกี่ยวกับ
ได้อย่างละเอียดยิ่งขึ้น
สร้างงาน
งานสามารถสร้างได้เฉพาะในนามของครูของหลักสูตรเท่านั้นและ
การพยายามสร้างงานในหลักสูตรในนามของนักเรียนจะส่งผล
ในข้อผิดพลาด 403 PERMISSION_DENIED
และผู้ดูแลโดเมนก็ไม่สามารถสร้าง
งานสำหรับหลักสูตรที่ตนไม่ได้สอนและพยายามทำผ่าน API
ก็จะทำให้เกิดข้อผิดพลาด 403 PERMISSION_DENIED
เช่นกัน
เมื่อสร้างงานโดยใช้เมธอด courses.courseWork.create
คุณจะทำสิ่งต่อไปนี้ได้
สามารถแนบลิงก์เป็น materials
ซึ่งแสดงในโค้ดตัวอย่างด้านล่าง:
Java
Python
ผลลัพธ์จะมีตัวระบุที่เซิร์ฟเวอร์กำหนดซึ่งสามารถใช้เพื่ออ้างอิง การมอบหมายในคำขอ API อื่นๆ
หากต้องการรวมสื่อการสอนที่ลิงก์ในงานที่สร้างขึ้นผ่าน Classroom API ให้ทำดังนี้ ใช้ทรัพยากรลิงก์โดยระบุ URL เป้าหมาย Classroom จะดึงข้อมูลชื่อและภาพขนาดย่อโดยอัตโนมัติ นอกจากนี้ Classroom API ยังรองรับเนื้อหาใน Google ไดรฟ์และ YouTube โดยอัตโนมัติซึ่งสามารถ ที่รวมอยู่ในทรัพยากร DriveFile หรือ แหล่งข้อมูลวิดีโอ YouTube ใน
หากต้องการระบุวันที่ครบกำหนด ให้ตั้งค่าช่อง dueDate
และ dueTime
เป็น
ตามเวลา UTC ที่สอดคล้องกัน วันที่ครบกำหนดต้องเป็นวันที่ในอนาคต
เรียกดูงานและคำถาม
คุณสามารถเรียกดูงานและคำถามสำหรับนักเรียนและครูของ หรือโดยผู้ดูแลระบบโดเมน หากต้องการเรียกข้อมูล งานหรือคำถาม ให้ใช้course.courseWork.get วิธีเรียกข้อมูลทั้งหมด งานหรือคำถาม (อาจตรงกับเกณฑ์บางอย่าง) ใช้ courses.courseWork.list.
ขอบเขตที่จำเป็นจะขึ้นอยู่กับบทบาทที่ผู้ใช้ที่ส่งคำขอมีใน หากผู้ใช้เป็นนักเรียน ให้ใช้ขอบเขตอย่างใดอย่างหนึ่งต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
หากผู้ใช้เป็นครูหรือผู้ดูแลระบบโดเมน ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้ ขอบเขต:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
การมีสิทธิ์ในการเรียกข้อมูลงานหรือคำถามไม่ได้บอกเป็นนัย การอนุญาตให้เข้าถึงสื่อการเรียนการสอนหรือข้อมูลเมตาของเนื้อหา ในทางปฏิบัติหมายความว่า ที่ผู้ดูแลระบบจะไม่เห็นชื่อของไฟล์ในไดรฟ์ที่แนบ ไม่ใช่สมาชิกของหลักสูตรนี้ หากต้องการอนุญาตให้ผู้ดูแลระบบเข้าถึงผู้ใช้ได้ โปรดดูส่วนทั่วทั้งโดเมน การมอบสิทธิ์
จัดการคำตอบของนักเรียน
StudentSubmission
ทรัพยากรแสดงถึงงานที่ทำและคะแนนของนักเรียนสำหรับงาน หรือ
คำถาม StudentSubmission
สำหรับนักเรียนแต่ละคนโดยปริยาย เมื่อมีคำถามหรือ
สร้างการมอบหมายแล้ว
ส่วนต่อไปนี้จะอธิบายการดำเนินการทั่วไปที่จัดการคำตอบของนักเรียน
เรียกดูคำตอบของนักเรียน
นักเรียนสามารถเรียกดูงานที่ส่งของตนเอง ครูสามารถเรียกดูงานที่ส่ง
สำหรับนักเรียนทุกคนในหลักสูตร และผู้ดูแลระบบโดเมนสามารถเรียกข้อมูล
งานของนักเรียนทั้งหมดในโดเมน การส่งงานของนักเรียนแต่ละครั้ง
ได้รับมอบหมายตัวระบุ ถ้าคุณทราบตัวระบุ ให้ใช้
courses.courseWork.studentSubmissions.get
เพื่อเรียกข้อมูล
ใช้เมธอด courses.courseWork.studentSubmissions.list
เพื่อรับ
แหล่งข้อมูล StudentSubmission
รายการที่ตรงกับเกณฑ์บางรายการ ดังที่แสดงใน
ตัวอย่างต่อไปนี้
Java
Python
เรียกดูแหล่งข้อมูล StudentSubmission
รายการที่เป็นของนักเรียนคนใดคนหนึ่งโดย
ระบุพารามิเตอร์ userId
ดังที่แสดงในตัวอย่างต่อไปนี้
Java
Python
ระบบจะระบุตัวนักเรียนด้วยรหัสที่ไม่ซ้ำกันหรืออีเมลของผู้ใช้
ที่แสดงผลโดย Google Admin SDK ผู้ใช้ปัจจุบันอาจอ้างถึง
รหัสโดยใช้ชวเลข "me"
นอกจากนี้ยังสามารถรับงานที่นักเรียนส่งสำหรับงานทั้งหมดภายใน
ในการดำเนินการดังกล่าว ให้ใช้ "-"
ตามตัวอักษรเป็น courseWorkId
ดังที่แสดงใน
ตัวอย่างต่อไปนี้
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
ขอบเขตที่จำเป็นจะขึ้นอยู่กับบทบาทที่ผู้ใช้ที่ส่งคำขอมีใน ใช้ขอบเขตต่อไปนี้หากผู้ใช้เป็นครูหรือโดเมน ผู้ดูแลระบบ:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
ใช้ขอบเขตต่อไปนี้หากผู้ใช้เป็นนักเรียน
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
การมีสิทธิ์เรียกข้อมูลงานที่นักเรียนส่งไม่ได้บอกเป็นนัย สิทธิ์การเข้าถึงไฟล์แนบหรือข้อมูลเมตาของไฟล์แนบ ในทางปฏิบัติ หมายความว่าผู้ดูแลระบบอาจไม่เห็นชื่อไฟล์แนบในไดรฟ์หาก พวกเขาไม่ใช่สมาชิกของหลักสูตร ถ้าต้องการให้ผู้ดูแลระบบเข้าถึง ในไฟล์ของผู้ใช้ โปรดดูส่วน คำแนะนำเกี่ยวกับการมอบสิทธิ์ทั่วทั้งโดเมน
การเพิ่มไฟล์แนบในคำตอบของนักเรียน
คุณสามารถแนบลิงก์ไปยังงานที่นักเรียนส่งโดยแนบ Link
,
ทรัพยากร DriveFile
หรือ YouTubeVideo
คุณสามารถดำเนินการนี้กับ
courses.courseWork.studentSubmissions.modifyAttachments
ดังที่แสดงใน
ตัวอย่างต่อไปนี้
Java
Python
ไฟล์แนบลิงก์จะกำหนดโดย URL เป้าหมาย Classroom จะ ดึงข้อมูลชื่อและภาพขนาดย่อ คุณสามารถเรียนรู้เกี่ยวกับเนื้อหาอื่นๆ ได้ที่ หน้าอ้างอิงที่เกี่ยวข้อง
มีเพียงครูของหลักสูตรหรือโดยผู้ที่แก้ไข StudentSubmission
ได้
นักเรียนที่เป็นเจ้าของไฟล์ คุณสามารถแนบ Materials
ได้เฉพาะในกรณีต่อไปนี้
CourseWorkType
ของงานที่นักเรียนส่งคือ ASSIGNMENT
ขอบเขตที่จำเป็นจะขึ้นอยู่กับบทบาทที่ผู้ใช้ที่ส่งคำขอมีใน ใช้ขอบเขตต่อไปนี้หากผู้ใช้เป็นครู
https://www.googleapis.com/auth/classroom.coursework.students
ใช้ขอบเขตต่อไปนี้หากผู้ใช้เป็นนักเรียน
https://www.googleapis.com/auth/classroom.coursework.me
จัดการสถานะการตอบกลับของนักเรียน
นักเรียนอาจยกเลิกการส่ง ส่ง หรือส่งคืนคำตอบ ฟิลด์รัฐ
ใน StudentSubmission
จะระบุสถานะปัจจุบันของ หากต้องการเปลี่ยนสถานะ โปรดโทร
วิธีใดวิธีหนึ่งต่อไปนี้
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
วิธีการเหล่านี้ทั้งหมดมีเนื้อหาว่างเปล่า ตัวอย่าง
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
มีเพียงนักเรียนที่เป็นเจ้าของ StudentSubmission
เท่านั้นที่จะส่งงานหรือเรียกคืนได้
เฉพาะเนื้อหาที่ส่งแล้วเท่านั้นที่จะอ้างสิทธิ์ซ้ำได้ ครูของหลักสูตรสามารถส่งคืน
StudentSubmission
ที่อยู่ในสถานะส่ง
ให้คะแนนคำตอบของนักเรียน
แหล่งข้อมูล StudentSubmission
มี 2 ช่องสำหรับจัดเก็บคะแนน ได้แก่
assignedGrade
ซึ่งเป็นคะแนนที่รายงานให้นักเรียนและ draftGrade
ซึ่งเป็นคะแนนเบื้องต้นที่จะปรากฏต่อครูเท่านั้น อัปเดตช่องเหล่านี้แล้ว
ที่ใช้ courses.courseWork.studentSubmissions.patch
กับมาสก์ของช่อง
มีฟิลด์ที่เหมาะสม ดังที่แสดงในตัวอย่างต่อไปนี้
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
เมื่อใช้ UI ของ Classroom ครูจะมอบหมายคะแนนไม่ได้จนกว่าจะ บันทึกคะแนนคร่าวๆ ไว้ก่อนแล้ว คะแนนที่ได้รับมอบหมายสามารถส่งคืนให้กับ นักเรียนคนหนึ่ง แอปพลิเคชันต้องจำลองลักษณะการทำงานนี้ แอปพลิเคชันของคุณสามารถ ให้คะแนนงานของนักเรียนได้ 2 วิธี ดังนี้
มอบหมายเพียง
draftGrade
ซึ่งจะเป็นประโยชน์ เช่น ในการช่วยให้ครู ตรวจสอบคะแนนด้วยตนเองก่อนสรุป นักเรียนจะดูคะแนนคร่าวๆ ไม่ได้มอบหมายทั้ง
draftGrade
และassignedGrade
เพื่อให้คะแนนงานอย่างสมบูรณ์
แสดงรายการคะแนนที่มอบหมาย
คุณจะระบุคะแนนทั้งหมดของการบ้านและรายงานหนึ่งๆ ได้โดยการสำรวจ
ออบเจ็กต์คำตอบของเมธอด courses.courseWork.studentSubmissions.list
:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")