Tương tác với tệp đính kèm

Trang này thảo luận về thông tin chi tiết về cách triển khai để tạo tệp đính kèm, các hành động được đề xuất khi người dùng mở tệp đính kèm và cách xử lý bài nộp của học viên. Xin lưu ý rằng bạn có thể cần cung cấp các tham số liên quan đến tệp đính kèm khi đưa ra các yêu cầu này.

Tạo tệp đính kèm

Tạo tệp đính kèm bằng cách gửi yêu cầu CREATE đến điểm cuối courses.*.addOnAttachments.create thích hợp. Yêu cầu của bạn phải bao gồm một thực thể AddOnAttachment trong nội dung yêu cầu.

Bạn phải cung cấp các trường sau đây khi tạo tệp đính kèm:

  • title: tên chuỗi của tệp đính kèm.
  • teacherViewUri: URI cho Chế độ xem của giáo viên về tệp đính kèm.
  • studentViewUri: URI cho Chế độ xem của học viên về tệp đính kèm.
  • studentWorkReviewUri: URI để giáo viên xem bài tập của học viên trong tệp đính kèm. Bạn chỉ cần cung cấp trường này cho các tệp đính kèm thuộc loại hoạt động.

Bạn có thể muốn thêm một số trường không bắt buộc sau đây:

  • dueDatedueTime nếu bạn chỉ định thời điểm nộp tệp đính kèm.
  • maxPoints: điểm tối đa cho tệp đính kèm. Phải là giá trị khác 0 nếu bạn muốn hỗ trợ tính năng chuyển điểm. Chỉ áp dụng cho các tệp đính kèm thuộc loại hoạt động.

Hãy xem tài liệu tham khảo về tài nguyên AddOnAttachment để biết thêm thông tin chi tiết về các trường này.

Xác thực thông tin đăng nhập và vai trò của người dùng

Iframe Chế độ xem của học viên, iframe Xem xét bài tập của học viêniframe Chế độ xem của giáo viên đều nhằm mục đích trình bày nội dung cho người dùng thay vì sửa đổi bài tập trong Lớp học. Hãy cân nhắc thực hiện những việc sau khi mở một trong các chế độ xem này:

  • Lấy thông tin đăng nhập OAuth cho người dùng.
  • Đưa ra yêu cầu courseWork.getAddOnContext, courseWorkMaterials.getAddOnContext hoặc announcements.getAddOnContext dựa trên itemType để xác thực vai trò của người dùng.
  • Kiểm tra phản hồi để xem TeacherContext hoặc StudentContext có xuất hiện hay không. Chỉ có thể trả về một trong hai đối tượng này, tương ứng với vai trò của người dùng trong khoá học.
  • Nếu người dùng hiện tại là học viên và itemTypecourseWork, hãy ghi lại submissionId từ phản hồi bằng bài tập của học viên. submissionIds khớp trên các iframe tiện ích bổ sung và bắt buộc phải có để chuyển điểm và hiển thị bài tập của học viên cho giáo viên trong công cụ chấm điểm.
  • Nếu tiện ích bổ sung đã biết attachmentId, hãy hiển thị giao diện người dùng tệp đính kèm thích hợp.
  • Nếu không, tệp đính kèm này phải được sao chép từ một mục luồng hoặc khoá học khác. Hãy xem hướng dẫn Xử lý nội dung đã sao chép để biết các đề xuất về trường hợp này.

Thông tin chi tiết về bài nộp của học viên

Quy trình nộp bài thông thường tuân theo các bước sau:

  1. Học viên chạy studentViewUri để hoàn thành một hoạt động.
  2. Tiện ích bổ sung truy xuất submissionId từ phương thức getAddOnContext bằng thông tin đăng nhập của học viên.
  3. Nhà phát triển tiện ích bổ sung lưu trữ submissionIdattachmentId dưới dạng mã nhận dạng duy nhất của bài tập của học viên. Trong trường hợp giáo viên sao chép một bài tập trong Lớp học, bạn có thể sử dụng khoá tổng hợp của hai tham số này để hiển thị một tệp đính kèm mới trong bài tập đã sao chép. Hãy xem trang của chúng tôi về nội dung đã sao chép để biết thêm thông tin chi tiết.
  4. Giáo viên muốn xem xét bài tập của học viên sẽ chạy studentWorkReviewUri. Yêu cầu này bao gồm các tham số truy vấn sau: courseId, itemId, itemType, attachmentIdsubmissionId.
  5. Nhà phát triển tiện ích bổ sung sử dụng 4 mã nhận dạng này để truy xuất bài tập của học viên. Sử dụng điểm cuối courses.courseWork.addOnAttachments.studentSubmissions để truy xuất hoặc sửa đổi thông tin về bài nộp của học viên.

Phát hiện trạng thái của bài nộp

Gửi yêu cầu GET đến điểm cuối courses.courseWork.addOnAttachments.studentSubmissions để biết thông tin chi tiết về một submissionId cụ thể. Bạn sẽ nhận được một đối tượng AddOnAttachmentStudentSubmission chứa điểm của bài nộp (pointsEarned) và trạng thái hiện tại (postSubmissionState). Trạng thái của bài nộp có thể là một trong các giá trị sau:

  • NEW, nếu học viên chưa bao giờ truy cập vào bài nộp.
  • CREATED, nếu học viên đã tạo bài nộp nhưng chưa nộp.
  • TURNED_IN, nếu học viên đã nộp bài tập cho giáo viên.
  • RETURNED, nếu giáo viên đã trả bài nộp cho học viên.
  • RECLAIMED_BY_STUDENT, nếu học viên đã "huỷ nộp" bài tập của mình.

Sử dụng điểm cuối này để phát hiện trạng thái bài tập của học viên trong tiện ích bổ sung. Sau đó, bạn có thể điều chỉnh các chế độ xem hoặc lựa chọn được cung cấp cho học viên tuỳ thuộc vào trạng thái được trả về. Điều này có thể bao gồm các tính năng như:

  • Hiển thị trạng thái nộp bài tập trong tiện ích bổ sung. Điều này có thể giúp học viên tránh nhầm lẫn và đảm bảo họ không vô tình quên nộp bài tập.
  • Hạn chế đặc quyền chỉnh sửa bài nộp. Nếu bài tập có trạng thái CREATED hoặc RECLAIMED_BY_STUDENT, học viên có thể được phép chỉnh sửa bài nộp của mình. Nếu bài tập có trạng thái TURNED_IN hoặc RETURNED, học viên có thể không được phép chỉnh sửa bài nộp của mình.

Điểm và nhiều tệp đính kèm

Bạn chỉ có thể sử dụng một tệp đính kèm tiện ích bổ sung để đặt điểm cho một bài tập. Nếu giáo viên tạo nhiều tệp đính kèm thuộc loại hoạt động cung cấp giá trị maxPoints, thì chỉ tệp đính kèm đầu tiên như vậy mới có thể đặt điểm cho bài tập. Để trống giá trị maxPoints hoặc đặt giá trị này thành 0 để tắt tính năng chuyển điểm cho tệp đính kèm.

Đặt điểm cho bài nộp

Bạn có thể sửa đổi bài nộp của học viên bằng cách gửi yêu cầu PATCH đến điểm cuối courses.courseWork.addOnAttachments.studentSubmissions. Nội dung yêu cầu phải bao gồm một thực thể AddOnAttachmentStudentSubmission có các giá trị đã sửa đổi. Đặt trường pointsEarned để sửa đổi điểm của bài nộp. Giá trị được truyền trong pointsEarned sẽ trở thành điểm không chính thức mà giáo viên có thể nhìn thấy trong giao diện người dùng Lớp học. Giáo viên có thể sửa đổi điểm không chính thức trước khi trả bài tập cho học viên. Hãy xem bài viết Tổng quan về việc chấm điểm trong giao diện người dùng Lớp học để biết thông tin chi tiết về cách hiển thị điểm cho giáo viên.

Xin lưu ý rằng bạn chỉ có thể đặt điểm bằng pointsEarned nếu đáp ứng các điều kiện sau:

  • Tệp đính kèm phải có giá trị maxPoints dương.
  • Tiện ích bổ sung phải là nhà sáng tạo ban đầu của tệp đính kèm.

Xin lưu ý rằng bạn cũng có thể sửa đổi giá trị maxPoints của AddOnAttachment đã tạo bằng cách gửi yêu cầu PATCH đến điểm cuối addOnAttachments.

Thời điểm đặt điểm

Bạn có thể chọn thời điểm chuyển điểm trở lại Google Lớp học. Điểm khác biệt quan trọng là liệu bạn có chọn lưu trữ thông tin đăng nhập của giáo viên hay không, vì chỉ giáo viên mới có thể sửa đổi điểm.

2 thời điểm tiện ích bổ sung mà bạn có thể chuyển điểm đến Google Lớp học: khi học viên hoàn thành bài tập hoặc khi giáo viên mở bài tập của học viên trong iframe Xem xét bài tập của học viên.

Nếu muốn đặt điểm khi học viên hoàn thành bài tập, bạn phải lưu trữ thông tin đăng nhập ngoại tuyến của giáo viên, sau đó truy xuất và sử dụng thông tin đăng nhập đó để sửa đổi điểm khi học viên hoàn thành bài tập. Phương thức này mang lại một số lợi ích tiềm năng:

  • Cung cấp thông tin cập nhật điểm liền mạch. Giáo viên không cần thực hiện bất kỳ thao tác đặc biệt nào để điểm được điền sẵn trong giao diện người dùng Lớp học.
  • Cung cấp thông tin chi tiết theo thời gian thực về tiến trình của một lớp học thông qua một bài tập. Bằng cách đặt điểm khi học viên hoàn thành tệp đính kèm, giáo viên có thể nắm được mức độ hiểu biết của học viên mà không cần mở từng bài nộp.

Xin lưu ý rằng phương pháp này cũng cho phép sử dụng phương pháp không đồng bộ để đồng bộ hoá điểm. Bạn có thể định kỳ thăm dò điểm cuối AddOnAttachmentStudentSubmission để phát hiện thời điểm học viên đã nộp bài tập. Khi bài tập đã được nộp, hãy đặt điểm cho bài nộp bằng thông tin đăng nhập đã lưu trữ.

Nếu không muốn tải thông tin đăng nhập của giáo viên trong phiên học viên, bạn có thể sử dụng thông tin đăng nhập của giáo viên đang hoạt động khi họ tải bài nộp của học viên trong iframe Xem xét bài tập của học viên. Tuy nhiên, điều này có thể không mang lại trải nghiệm người dùng đặc biệt mượt mà vì điểm trong giao diện người dùng Lớp học không cập nhật theo thời gian thực và giáo viên sẽ phải mở iframe Xem xét bài tập của học viên của từng bài nộp.

Phát hiện thay đổi về điểm của bài tập

Giáo viên có thể chỉnh sửa chế độ cài đặt điểm trong Lớp học sau khi tạo bài tập. Các nội dung chỉnh sửa như vậy có thể bao gồm:

  • Thay đổi giá trị điểm được chỉ định.
  • Thay đổi giá trị maxPoints của bài tập.
  • Thay đổi việc có nên chấm điểm cho bài tập hay không.

Để xem chế độ cài đặt chấm điểm hiện tại của bài tập, bạn nên gửi yêu cầu GET đến điểm cuối courses.courseWork. Phản hồi bao gồm giá trị maxPoints hiện tại. Bài tập chưa chấm điểm có giá trị maxPoints là null hoặc 0.

Nếu bạn đã chuyển điểm trở lại Lớp học, hãy sử dụng điểm cuối courses.courseWork.addOnAttachments.studentSubmissions để tìm nạp hoặc thay đổi điểm cho tệp đính kèm tiện ích bổ sung. Giá trị điểm được đặt bằng trường pointsEarned. Hãy cân nhắc kiểm tra và nếu cần, hãy cập nhật giá trị này nếu sản phẩm của bạn cho phép giáo viên chỉnh sửa điểm của học viên cho một hoạt động cụ thể.