Ứng dụng Lớp học hỗ trợ 3 loại mục trên luồng:
CourseWork
, CourseWorkMaterials
và Announcements
. Hướng dẫn này mô tả cách quản lý CourseWork
, nhưng các API cho tất cả các mục trong luồng phát đều tương tự nhau. Hãy xem Tài nguyên API để tìm hiểu thêm về các loại mục trong luồng phát và sự khác biệt giữa chúng.
Tài nguyên CourseWork
đại diện cho một mục công việc đã được giao cho học viên trong một khoá học cụ thể, bao gồm mọi tài liệu và thông tin chi tiết bổ sung, chẳng hạn như ngày đến hạn hoặc điểm số tối đa. Có 4 loại phụ của CourseWork
: bài tập, bài tập kiểm tra, câu hỏi trả lời ngắn và câu hỏi trắc nghiệm. Classroom API hỗ trợ 3 loại bài tập này: bài tập, câu hỏi có câu trả lời ngắn và câu hỏi trắc nghiệm. Những loại này được biểu thị bằng trường CourseWork.workType
.
Ngoài tài nguyên CourseWork
, bạn có thể quản lý công việc đã hoàn thành bằng tài nguyên StudentSubmission
.
Tạo CourseWork
CourseWork
chỉ có thể được tạo thay mặt cho giáo viên của khoá học.
Việc cố gắng tạo CourseWork
thay mặt cho một học viên hoặc một quản trị viên miền không phải là giáo viên trong khoá học sẽ dẫn đến lỗi PERMISSION_DENIED
. Hãy xem bài viết Các loại người dùng để tìm hiểu thêm về các vai trò trong Lớp học.
Khi tạo CourseWork
bằng phương thức courses.courseWork.create
, bạn có thể đính kèm các đường liên kết dưới dạng materials
, như trong mã mẫu bên dưới:
Java
Python
Bạn bắt buộc phải điền vào các trường title
và workType
. Tất cả các trường khác đều không bắt buộc.
Nếu bạn không chỉ định state
, thì CourseWork
sẽ được tạo ở trạng thái bản nháp.
Sử dụng Tài nguyên liên kết với mục tiêu được chỉ định url
để đưa các tài liệu được liên kết vào CourseWork
. Lớp học tự động tìm nạp title
và URL hình thu nhỏ (thumbnailUrl
). API Lớp học cũng hỗ trợ nguyên bản các tài liệu trên Google Drive và YouTube. Bạn có thể thêm các tài liệu này bằng tài nguyên DriveFile hoặc tài nguyên YouTubeVideo theo cách tương tự.
Để chỉ định ngày đến hạn, hãy đặt các trường dueDate
và dueTime
thành thời gian UTC tương ứng. Ngày đến hạn phải là ngày trong tương lai.
Phản hồi CourseWork
bao gồm một giá trị nhận dạng do máy chủ chỉ định. Bạn có thể dùng giá trị nhận dạng này để tham chiếu việc chỉ định trong các yêu cầu API khác.
Truy xuất CourseWork
Bạn có thể truy xuất CourseWork
thay cho học viên và giáo viên của khoá học tương ứng. Bạn cũng có thể truy xuất CourseWork
thay mặt cho quản trị viên miền, ngay cả khi họ không phải là giáo viên trong khoá học. Để truy xuất một CourseWork
cụ thể, hãy sử dụng courses.courseWork.get
. Để truy xuất tất cả CourseWork
(tuỳ ý khớp với một số tiêu chí), hãy sử dụng courses.courseWork.list
.
Phạm vi bắt buộc phụ thuộc vào vai trò của người dùng yêu cầu trong khoá học. Nếu người dùng là học viên, hãy sử dụng một trong các phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Nếu người dùng là giáo viên hoặc quản trị viên miền, hãy sử dụng một trong các phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Việc có quyền truy xuất một CourseWork
không ngụ ý rằng bạn có quyền truy cập vào nội dung hoặc siêu dữ liệu nội dung. Trên thực tế, điều này có nghĩa là quản trị viên có thể không thấy tiêu đề của một tệp Drive được đính kèm nếu họ không phải là thành viên của khoá học.
Quản lý câu trả lời của học viên
Tài nguyên StudentSubmission
đại diện cho bài làm của học viên đối với một CourseWork
. Tài nguyên này bao gồm siêu dữ liệu liên quan đến bài tập, chẳng hạn như trạng thái và điểm của bài tập. Một StudentSubmission
sẽ được tạo ngầm cho mỗi học viên khi một CourseWork
mới được tạo.
Các phần sau đây giải thích những việc thường làm để quản lý câu trả lời của học viên.
Truy xuất câu trả lời của học viên
Học viên có thể truy xuất bài tập đã nộp của riêng mình, giáo viên có thể truy xuất bài tập đã nộp của tất cả học viên trong khoá học của họ và quản trị viên miền có thể truy xuất tất cả bài tập đã nộp của tất cả học viên trong miền của họ. Mỗi StudentSubmission
được chỉ định một giá trị nhận dạng. Nếu bạn biết giá trị nhận dạng, hãy sử dụng courses.courseWork.studentSubmissions.get
để truy xuất bản gửi.
Sử dụng phương thức courses.courseWork.studentSubmissions.list
để nhận tất cả tài nguyên StudentSubmission
đáp ứng một số tiêu chí, như minh hoạ trong mẫu sau:
Java
Python
Truy xuất các tài nguyên StudentSubmission
thuộc về một học viên cụ thể bằng cách chỉ định tham số userId
, như trong mẫu sau:
Java
Python
Học viên được xác định bằng mã nhận dạng duy nhất hoặc địa chỉ email, như được trình bày trong tài nguyên Student
. Người dùng hiện tại cũng có thể tham chiếu đến mã nhận dạng của chính họ bằng cách sử dụng ký hiệu viết tắt "me"
.
Bạn cũng có thể truy xuất bài tập đã nộp của học viên cho tất cả bài tập trong một khoá học. Để thực hiện việc này, hãy dùng giá trị cố định "-"
làm courseWorkId
, như trong mẫu sau:
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()
Phạm vi bắt buộc phụ thuộc vào vai trò của người dùng yêu cầu trong khoá học. Nếu người dùng là giáo viên hoặc quản trị viên miền, hãy sử dụng phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Nếu người dùng là học viên, hãy sử dụng phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Việc có quyền truy xuất một StudentSubmission
không ngụ ý rằng bạn có quyền truy cập vào tệp đính kèm hoặc siêu dữ liệu của tệp đính kèm. Trên thực tế, điều này có nghĩa là quản trị viên có thể không thấy tiêu đề của một tệp Drive được đính kèm nếu họ không phải là thành viên của khoá học.
Thêm tệp đính kèm vào câu trả lời của học viên
Bạn có thể đính kèm đường liên kết vào bài tập mà học viên đã nộp bằng cách đính kèm tài nguyên Link
, DriveFile
hoặc YouTubeVideo
. Bạn có thể thực hiện việc này bằng courses.courseWork.studentSubmissions.modifyAttachments
, như trong mẫu sau:
Java
Python
Tệp đính kèm Link
được xác định theo mục tiêu url
; Lớp học sẽ tự động tìm nạp title
và hình thu nhỏ (thumbnailUrl
). Hãy xem Material
để tìm hiểu về những tài liệu có thể đính kèm vào StudentSubmissions
.
Chỉ giáo viên của khoá học hoặc học viên sở hữu StudentSubmission
mới có thể sửa đổi StudentSubmission
. Bạn chỉ có thể đính kèm Materials
nếu CourseWorkType
của StudentSubmission
là ASSIGNMENT
.
Phạm vi bắt buộc phụ thuộc vào vai trò của người dùng yêu cầu trong khoá học. Nếu người dùng là giáo viên, hãy sử dụng phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.students
Nếu người dùng là học viên, hãy sử dụng phạm vi sau:
https://www.googleapis.com/auth/classroom.coursework.me