Giao diện người dùng của Lớp học hỗ trợ năm loại Bài tập trên lớp: Bài tập,
Bài kiểm tra, câu hỏi 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ợ ba loại sau đây,
được gọi là CourseWorkType
cho API: Bài tập, Câu 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 của CourseWork, biểu thị một Bài tập hoặc Câu hỏi đã được giao cho học sinh một khoá học cụ thể, bao gồm cả mọi tài liệu và thông tin chi tiết bổ sung, chẳng hạn như khoá học ngày hoặc điểm tối đa.
Ngoài tài nguyên trên CourseWork, bạn có thể quản lý các bài tập đã hoàn thành
bằng tài nguyên StudentSubmission
. Các phần sau đây mô tả
chi tiết hơn.
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à
cố gắng tạo bài tập trong khóa học thay mặt cho học viên sẽ dẫn đến kết quả
trong 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 họ không dạy và cố gắng thực hiện thông qua API
cũng sẽ dẫn đến 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
, trong đoạn mã mẫu dưới đây:
Java
Python
Kết quả chứa một giá trị nhận dạng do máy chủ chỉ định mà có thể dùng để tham chiếu quyền chỉ định trong các yêu cầu API khác.
Cách đưa tài liệu được liên kết vào một bài tập được tạo thông qua API Lớp học: sử dụng Tài nguyên đường liên kết, trong đó chỉ định URL mục tiêu. 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ác tài liệu này có thể kèm theo tài nguyên DriveFile hoặc Tài nguyên YouTubeVideo trong một .
Để chỉ định ngày đến hạn, hãy đặt 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 của quản trị viên miền. Để truy xuất một bài tập hoặc câu hỏi, hãy sử dụng dự kiến củaKhoá học.courseWork.get. Để truy xuất tất cả bài tập hoặc câu hỏi (có thể 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 đưa ra yêu cầu trong khóa 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 tuỳ chọn sau phạm vi:
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 có nghĩa là quyền truy cập tài liệu hoặc siêu dữ liệu tài liệu. 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 một 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 người dùng tệp, hãy xem toàn bộ miền uỷ quyền của chúng tôi.
Quản lý câu trả lời của học viên
StudentSubmission
tài nguyên biểu thị bài tập đã hoàn thành và điểm của một học viên trong một bài tập hoặc
. StudentSubmission
tài nguyên được tạo ngầm cho mỗi học sinh khi có câu hỏi hoặc
bài tập sẽ được tạo.
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 chính mình, giáo viên có thể truy xuất bài tập đã nộp
cho tất cả học viên trong khoá học của họ, đồng thời quản trị viên miền có thể truy xuất tất cả
bài nộp cho tất cả học viên trong miền của họ. Mỗi bài học viên nộp là
gán một giá trị nhận dạng; nếu bạn biết mã nhận dạng này, hãy sử dụng
courses.courseWork.studentSubmissions.get
để truy xuất dữ liệu đó.
Sử dụng phương thức courses.courseWork.studentSubmissions.list
để tải
Những tài nguyên StudentSubmission
phù hợp với một số tiêu chí, như được hiển thị 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 sinh đượ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, như
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 bằng cách viết tắt "me"
.
Bạn cũng có thể nhận bài tập mà học viên đã nộp cho tất cả bài tập trong một
khóa học. Để thực hiện việc này, hãy sử dụng giá trị cố định "-"
dưới dạng courseWorkId
, như minh hoạ 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 tuỳ thuộc vào vai trò của người dùng đưa ra yêu cầu trong khóa học. Sử dụng phạm vi sau nếu người dùng là giáo viên hoặc miền quản trị viên:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Hãy 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.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Việc có quyền truy xuất bài tập học viên đã nộp không có nghĩa là quyền truy cập tệp đính kèm hoặc siêu dữ liệu tệp đính kèm. Trong thực tế, đây là 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 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 vào bài tập học viên nộp bằng cách đính kèm một tệp Link
,
DriveFile
hoặc tài nguyên YouTubeVideo
. Việc này được thực hiện bằng
courses.courseWork.studentSubmissions.modifyAttachments
, như minh hoạ 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 chỉ có thể sửa đổi StudentSubmission
học viên sở hữu tệp đó. Bạn chỉ có thể đính kèm Materials
nếu
CourseWorkType
bài tập mà học viên gửi là ASSIGNMENT
.
Phạm vi bắt buộc phụ thuộc vào vai trò của người dùng đưa ra yêu cầu trong khóa học. Hãy sử dụng phạm vi sau nếu người dùng là giáo viên:
https://www.googleapis.com/auth/classroom.coursework.students
Hãy 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
Quản lý trạng thái trả lời của học viên
Câu trả lời của học viên có thể bị huỷ gửi, đã nộp hoặc bị trả lại. Trường trạng thái
trong StudentSubmission
cho biết trạng thái hiện tại. Để thay đổi tiểu bang, hãy gọi
một trong các phương pháp sau:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Tất cả các phương thức này đều lấy phần nội dung trống. Ví dụ:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Chỉ học viên sở hữu StudentSubmission
mới có thể nộp hoặc lấy lại bài tập đó.
Chỉ có thể lấy lại bài đã nộp. Giáo viên trong khoá học chỉ có thể trả lại
StudentSubmission
đang ở trạng thái đã nộp.
Câu trả lời của học viên trong chương trình chấm điểm
Tài nguyên StudentSubmission
có 2 trường để lưu trữ điểm:
assignedGrade
là điểm được báo cáo cho học sinh và draftGrade
,
đây là điểm dự kiến mà chỉ giáo viên mới nhìn thấy. Những trường này đã được cập nhật
sử dụng courses.courseWork.studentSubmissions.patch
với một mặt nạ trường
chứa các trường thích hợp, như được thể hiện trong mẫu sau.
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Khi sử dụng giao diện người dùng Lớp học, giáo viên chỉ có thể chấm điểm đã lưu điểm không chính thức. Sau đó, bạn có thể trả điểm đã giao cho học viên. Các ứng dụng cần mô phỏng hành vi này. Ứng dụng của bạn có thể chấm điểm bài tập của học viên theo một trong hai cách:
Chỉ chỉ định
draftGrade
. Ví dụ: điều này hữu ích để cho phép giáo viên kiểm tra điểm theo cách thủ công trước khi chấm dứt. Học viên không thể xem điểm không chính thức.Chỉ định cả
draftGrade
vàassignedGrade
để chấm điểm đầy đủ bài tập.
Liệt kê điểm đã giao
Bạn có thể liệt kê tất cả điểm trong một mục tài liệu môn học cụ thể bằng cách khám phá
Đối tượng phản hồi của phương thức courses.courseWork.studentSubmissions.list
:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")