แอป Classroom รองรับรายการในสตรีม 3 ประเภท ได้แก่
CourseWork
, CourseWorkMaterials
และ Announcements
คู่มือนี้
อธิบายวิธีจัดการ CourseWork
แต่ API สำหรับรายการสตรีมทั้งหมดจะ
คล้ายกัน ดูแหล่งข้อมูล API เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทรายการสตรีมและความแตกต่างของรายการเหล่านั้น
CourseWork
ทรัพยากรแสดงถึงรายการงานที่ได้รับมอบหมายให้นักเรียน/นักศึกษาในหลักสูตรหนึ่งๆ รวมถึงสื่อและรายละเอียดเพิ่มเติม เช่น วันที่ครบกำหนดหรือคะแนนสูงสุด
CourseWork
มี 4 ประเภทย่อย ได้แก่
งาน แบบทดสอบ คำถามแบบคำตอบสั้นๆ และ
คำถามแบบหลายตัวเลือก Classroom API รองรับ
งาน คำถามที่ต้องการคำตอบสั้นๆ และ
คำถามแบบหลายตัวเลือก ซึ่งเป็น 3 ประเภทย่อยของคำถาม โดยประเภทเหล่านี้จะแสดงด้วยฟิลด์
CourseWork.workType
นอกจากCourseWork
แหล่งข้อมูลแล้ว คุณยังจัดการงานที่เสร็จสมบูรณ์ได้
ด้วยแหล่งข้อมูล StudentSubmission
สร้างงานของชั้นเรียน
CourseWork
จะสร้างได้ในนามของครูผู้สอนเท่านั้น
การพยายามสร้าง CourseWork
ในนามของนักเรียนหรือผู้ดูแลระบบโดเมนที่ไม่ได้เป็นครูในหลักสูตรจะทำให้เกิดข้อผิดพลาด PERMISSION_DENIED
ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทต่างๆ ใน Classroom ได้ที่ประเภทผู้ใช้
เมื่อสร้าง CourseWork
โดยใช้วิธี courses.courseWork.create
คุณจะ
แนบลิงก์เป็น materials
ได้ตามที่แสดงในโค้ดตัวอย่างด้านล่าง
Java
Python
ต้องระบุข้อมูลในช่อง title
และ workType
ช่องอื่นๆ ทั้งหมดไม่บังคับ
หากไม่ได้ระบุ state
ระบบจะสร้าง CourseWork
ในสถานะแบบร่าง
ใช้แหล่งข้อมูลลิงก์ที่มีเป้าหมายที่ระบุ
url
เพื่อรวมสื่อที่ลิงก์ไว้ใน CourseWork
Classroom
จะดึงข้อมูล title
และ URL ของรูปภาพขนาดย่อ (thumbnailUrl
) โดยอัตโนมัติ
นอกจากนี้ Classroom API ยังรองรับเนื้อหาใน Google ไดรฟ์และ YouTube
โดยกำเนิด ซึ่งสามารถรวมไว้กับแหล่งข้อมูล DriveFile หรือแหล่งข้อมูล YouTubeVideo ในลักษณะเดียวกัน
หากต้องการระบุวันที่ครบกำหนด ให้ตั้งค่าฟิลด์ dueDate
และ dueTime
เป็นเวลา UTC ที่เกี่ยวข้อง
วันที่ครบกำหนดต้องเป็นวันที่ในอนาคต
CourseWork
คำตอบมีตัวระบุที่เซิร์ฟเวอร์กำหนดซึ่งใช้
เพื่ออ้างอิงการกำหนดในคำขอ API อื่นๆ ได้
เรียกข้อมูล CourseWork
คุณสามารถดึงข้อมูล CourseWork
ในนามของนักเรียนและครูของหลักสูตรที่เกี่ยวข้องได้ นอกจากนี้ คุณยังเรียกข้อมูล CourseWork
ในนามของผู้ดูแลระบบโดเมนได้ด้วย แม้ว่าผู้ดูแลระบบจะไม่ได้เป็นครูในหลักสูตรก็ตาม หากต้องการดึงข้อมูลCourseWork
ที่เฉพาะเจาะจง ให้ใช้ courses.courseWork.get
หากต้องการดึงข้อมูลทั้งหมด
CourseWork
(อาจตรงกับเกณฑ์บางอย่าง) ให้ใช้
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
การมีสิทธิ์ดึงข้อมูล CourseWork
ไม่ได้หมายความว่าคุณมีสิทธิ์เข้าถึงเนื้อหาหรือข้อมูลเมตาของเนื้อหา
ในทางปฏิบัติแล้ว หมายความว่า
ผู้ดูแลระบบอาจไม่เห็นชื่อไฟล์ในไดรฟ์ที่แนบมา
หากไม่ได้เป็นสมาชิกของหลักสูตร
จัดการคำตอบของนักเรียน/นักศึกษา
ทรัพยากร StudentSubmission
แสดงถึงงานที่นักเรียนทำสำหรับCourseWork
แหล่งข้อมูลนี้มีข้อมูลเมตาที่เกี่ยวข้องกับงาน เช่น สถานะงานและคะแนน ระบบจะสร้าง StudentSubmission
โดยปริยาย
สำหรับนักเรียนแต่ละคนเมื่อสร้าง CourseWork
ใหม่
ส่วนต่อไปนี้จะอธิบายการดำเนินการทั่วไปที่ใช้จัดการคำตอบของนักเรียน/นักศึกษา
ดึงคำตอบของนักเรียน
นักเรียนสามารถดึงข้อมูลงานที่ส่งของตนเอง ครูสามารถดึงข้อมูลงานที่ส่งของนักเรียนทุกคนในหลักสูตร และผู้ดูแลระบบโดเมนสามารถดึงข้อมูลงานที่ส่งทั้งหมดของนักเรียนทุกคนในโดเมน StudentSubmission
แต่ละรายการ
จะได้รับตัวระบุ หากทราบตัวระบุ ให้ใช้
courses.courseWork.studentSubmissions.get
เพื่อดึงข้อมูลการส่ง
ใช้วิธี courses.courseWork.studentSubmissions.list
เพื่อรับทรัพยากรทั้งหมด
StudentSubmission
ที่ตรงกับเกณฑ์บางอย่าง ดังที่แสดงใน
ตัวอย่างต่อไปนี้
Java
Python
เรียกข้อมูลStudentSubmission
ทรัพยากรที่เป็นของนักเรียนคนใดคนหนึ่งโดย
ระบุพารามิเตอร์ userId
ดังที่แสดงในตัวอย่างต่อไปนี้
Java
Python
ระบบจะระบุนักเรียนตามรหัสที่ไม่ซ้ำกันหรืออีเมลตามที่แสดงในแหล่งข้อมูล Student
ผู้ใช้ปัจจุบันยังอ้างอิงรหัสของตนเองได้โดยใช้รูปแบบย่อ
"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
การมีสิทธิ์ดึงข้อมูล StudentSubmission
ไม่ได้หมายความว่าคุณมีสิทธิ์
เข้าถึงไฟล์แนบหรือข้อมูลเมตาของไฟล์แนบ ในทางปฏิบัติ หมายความว่าผู้ดูแลระบบอาจไม่เห็นชื่อไฟล์ในไดรฟ์ที่แนบมาหากไม่ได้เป็นสมาชิกของหลักสูตร
เพิ่มไฟล์แนบในคำตอบของนักเรียน/นักศึกษา
คุณแนบลิงก์ไปยังงานที่นักเรียนส่งได้โดยแนบทรัพยากร Link
DriveFile
หรือ YouTubeVideo
โดยทำได้ด้วย
courses.courseWork.studentSubmissions.modifyAttachments
ดังที่แสดงใน
ตัวอย่างต่อไปนี้
Java
Python
Link
ไฟล์แนบจะกำหนดโดยเป้าหมาย url
Classroom จะดึงข้อมูล title
และรูปภาพขนาดย่อ (thumbnailUrl
) โดยอัตโนมัติ ดูMaterial
เพื่อดูข้อมูลเกี่ยวกับสื่อที่แนบไปกับ StudentSubmissions
ได้
โดยมีเพียงครูผู้สอนหรือนักเรียนที่เป็นเจ้าของเท่านั้นที่สามารถแก้ไขStudentSubmission
ได้ คุณจะแนบ Materials
ได้ก็ต่อเมื่อ
CourseWorkType
ของ StudentSubmission
เป็น ASSIGNMENT
เท่านั้น
ขอบเขตที่จำเป็นจะขึ้นอยู่กับบทบาทที่ผู้ใช้ที่ขอมีใน หลักสูตร หากผู้ใช้เป็นครู ให้ใช้ขอบเขตต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.students
หากผู้ใช้เป็นนักเรียน/นักศึกษา ให้ใช้ขอบเขตต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.me