แอป Classroom รองรับรายการสตรีม 3 ประเภท ได้แก่ CourseWork
, CourseWorkMaterials
และ Announcements
คู่มือนี้อธิบายวิธีจัดการ CourseWork
แต่ API สำหรับรายการสตรีมทั้งหมดจะคล้ายกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทรายการสตรีมและความแตกต่างของประเภทต่างๆ ได้ที่แหล่งข้อมูล API
ทรัพยากร CourseWork
แสดงถึงงานที่ได้รับมอบหมายให้นักเรียนในหลักสูตรหนึ่งๆ รวมถึงเนื้อหาและรายละเอียดเพิ่มเติม เช่น วันที่ครบกำหนดหรือคะแนนสูงสุด CourseWork
แบ่งออกเป็น 4 ประเภทย่อย ได้แก่
งาน แบบทดสอบ คำถามแบบตอบสั้นๆ และคำถามแบบเลือกตอบ Classroom API รองรับประเภทย่อย 3 ประเภท ได้แก่ งาน คำถามแบบตอบสั้นๆ และคำถามแบบหลายตัวเลือก ประเภทเหล่านี้แสดงด้วยฟิลด์ CourseWork.workType
นอกจากทรัพยากร CourseWork
แล้ว คุณยังจัดการงานที่เสร็จแล้วได้ด้วยทรัพยากร StudentSubmission
สร้างงาน
CourseWork
สร้างขึ้นได้เฉพาะในนามของครูของหลักสูตร
การพยายามสร้าง 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
resource หรือ YouTubeVideo
resource ในลักษณะที่คล้ายกัน
หากต้องการระบุวันที่ครบกำหนด ให้ตั้งค่าช่อง dueDate
และ dueTime
เป็นเวลา UTC ที่เกี่ยวข้อง วันที่ครบกำหนดต้องเป็นวันที่ในอนาคต
การตอบกลับ CourseWork
จะมีตัวระบุที่เซิร์ฟเวอร์กำหนดซึ่งสามารถใช้เพื่ออ้างอิงการกำหนดในคำขอ API อื่นๆ ได้
เรียกข้อมูลงาน
คุณสามารถเรียกข้อมูล 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
) โดยอัตโนมัติ ดูข้อมูลเกี่ยวกับเนื้อหาที่แนบไปกับ StudentSubmissions
ได้ที่ Material
StudentSubmission
ดังกล่าวจะแก้ไขได้โดยครูผู้สอนหลักสูตรหรือนักเรียนที่เป็นเจ้าของเท่านั้น คุณจะแนบ Materials
ได้ก็ต่อเมื่อ CourseWorkType
ของ StudentSubmission
เป็น ASSIGNMENT
ขอบเขตที่จําเป็นจะขึ้นอยู่กับบทบาทที่ผู้ใช้ที่ขอมีในหลักสูตร หากผู้ใช้เป็นครู ให้ใช้ขอบเขตต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.students
หากผู้ใช้เป็นนักเรียน/นักศึกษา ให้ใช้ขอบเขตต่อไปนี้
https://www.googleapis.com/auth/classroom.coursework.me