แอป 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.readonlyhttps://www.googleapis.com/auth/classroom.coursework.me
หากผู้ใช้เป็นครูหรือผู้ดูแลระบบโดเมน ให้ใช้ขอบเขตใดขอบเขตหนึ่งต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.students.readonlyhttps://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.readonlyhttps://www.googleapis.com/auth/classroom.coursework.students
หากผู้ใช้เป็นนักเรียน/นักศึกษา ให้ใช้ขอบเขตต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.me.readonlyhttps://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