Giao diện người dùng của Lớp học hỗ trợ 5 loại bài tập trên lớp: Bài tập, Bài kiểm tra, Câu hỏi có câu trả lời ngắn, Câu hỏi trắc nghiệm và Tài liệu. API Lớp học hiện hỗ trợ 3 loại trong số này, gọi là CourseWorkType
cho API: Bài tập, Câu hỏi trả lời ngắn và Câu hỏi trắc nghiệm.
Để sử dụng chức năng này, bạn có thể sử dụng tài nguyên Bài tập trên lớp. Tài nguyên này đại diện cho một Bài tập hoặc Câu hỏi đã đượ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.
Ngoài tài nguyên Bài tập, bạn có thể quản lý bài tập đã hoàn thành bằng tài nguyên StudentSubmission
. Các phần sau đây sẽ mô tả chi tiết hơn về những tính năng này.
Tạo bài tập
Bạn chỉ có thể tạo bài tập thay mặt cho(các) giáo viên của khoá học và việc tìm cách tạo bài tập trong một khoá học thay mặt cho học viên sẽ dẫn đến lỗi PERMISSION_DENIED
403. Tương tự, quản trị viên miền cũng không thể tạo bài tập cho các khoá học mà họ không dạy. Nếu cố gắng tạo bài tập thông qua API, họ cũng sẽ gặp lỗi 403 PERMISSION_DENIED
.
Khi tạo bài tập bằng phương thức courses.courseWork.create
, bạn có thể đính kèm đường liên kết dưới dạng materials
, như trong mã mẫu bên dưới:
Java
Python
Kết quả bao gồm một giá trị nhận dạng do máy chủ chỉ định có thể dùng để tham chiếu đến giá trị chỉ định trong các yêu cầu API khác.
Để đưa tài liệu được liên kết vào bài tập được tạo thông qua API Lớp học, hãy sử dụng Tài nguyên đường liên kết, chỉ định URL đích. Lớp học sẽ tự động tìm nạp tiêu đề và hình thu nhỏ. API Lớp học cũng hỗ trợ sẵn các tài liệu trên Google Drive và YouTube, có thể đi kèm với 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 giờ UTC tương ứng. Ngày đến hạn phải là ngày trong tương lai.
Truy xuất bài tập và câu hỏi
Bạn có thể truy xuất bài tập và câu hỏi cho học viên và giáo viên của khoá học tương ứng hoặc do quản trị viên miền thực hiện. Để truy xuất một bài tập hoặc câu hỏi cụ thể, hãy sử dụng courses.courseWork.get. Để truy xuất tất cả bài tập hoặc câu hỏi (không bắt buộc phải 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 bài tập hoặc câu hỏi không ngụ ý rằng bạn có quyền truy cập vào tài liệu hoặc siêu dữ liệu cụ thể. Trong 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 tệp đính kèm trên Drive nếu họ không phải là thành viên của khoá học. Nếu bạn muốn cho phép quản trị viên truy cập vào tệp của người dùng, hãy xem hướng dẫn về uỷ quyền trên toàn miền.
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 tập đã làm và điểm của học viên cho một bài tập hoặc câu hỏi. Tài nguyên StudentSubmission
sẽ được tạo ngầm cho mỗi học viên khi bạn tạo một câu hỏi hoặc bài tập mới.
Các phần sau đây giải thích những thao tác thường dùng để 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 nộp của riêng mình, giáo viên có thể truy xuất bài nộp của tất cả học viên trong khoá học và quản trị viên miền có thể truy xuất tất cả bài nộp của tất cả học viên trong miền của họ. Mỗi bài nộp của học viên sẽ được gán 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 giá trị nhận dạng đó.
Sử dụng phương thức courses.courseWork.studentSubmissions.list
để lấy các tài nguyên StudentSubmission
khớp với một số tiêu chí, như trong mẫu sau:
Java
Python
Truy xuất 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 của người dùng, do SDK dành cho quản trị viên của Google trả về. Người dùng hiện tại cũng có thể tham chiếu đến mã nhận dạng của riêng họ bằng cách sử dụng ký hiệu viết tắt "me"
.
Bạn cũng có thể nhận bài 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 sử 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. Sử dụng phạm vi sau nếu người dùng là giáo viên hoặc quản trị viên miền:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Hãy sử dụng phạm vi sau nếu người dùng là học viên:
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 bài nộp của học viên không đồng nghĩa với việc 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. Trong 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 tệp đính kèm trên Drive nếu họ không phải là thành viên của khoá học. Nếu bạn muốn cấp cho quản trị viên quyền truy cập vào tệp của người dùng, hãy xem hướng dẫn về uỷ quyền trên toàn miền.
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 đến bài nộp của học viên 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 đường liên kết được xác định theo URL đích; Lớp học sẽ tự động tìm nạp tiêu đề và hình thu nhỏ. Bạn có thể tìm hiểu về các tài liệu khác tại trang tham khảo tương ứng.
Chỉ giáo viên của khoá học hoặc học viên sở hữu lớp này mới có thể sửa đổi StudentSubmission
. Bạn chỉ có thể đính kèm Materials
nếu CourseWorkType
của bài nộp của học viên 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. Sử dụng phạm vi sau đây nếu người dùng là giáo viên:
https://www.googleapis.com/auth/classroom.coursework.students
Sử dụng phạm vi sau đây nếu người dùng là học viên:
https://www.googleapis.com/auth/classroom.coursework.me