Hướng dẫn này đề cập đến việc tạo tệp đính kèm bằng tiện ích bổ sung trong trang web hoặc ứng dụng của bạn. Các hoạt động tương tác này tương tự như việc tạo bài tập bằng các điểm cuối CourseWork API. Triển khai hành trình này để cho phép người dùng tạo tệp đính kèm bằng tiện ích bổ sung từ trang web hoặc ứng dụng của bạn.
Luồng công việc
Nhìn chung, quy trình tạo tệp đính kèm sẽ diễn ra theo trình tự sau:
- Người dùng là giáo viên mở trang web hoặc ứng dụng của bạn. Họ chọn một nội dung để giao cho học viên.
- Kiểm tra để đảm bảo người dùng có thể tạo tệp đính kèm có tiện ích bổ sung.
- Nếu người dùng không thể tạo tiện ích bổ sung tệp đính kèm, hãy tạo một bài tập CourseWork có URL đến nội dung đã chọn dưới dạng Tài liệu liên kết.
- Nếu người dùng có thể tạo tệp đính kèm có tiện ích bổ sung, hãy làm như sau:
- Tạo bài tập.
- Tạo một tệp đính kèm tiện ích bổ sung liên kết đến nội dung đã chọn và liên kết tệp đó với bài tập mới.
- Thông báo cho giáo viên biết rằng bài tập đã được tạo thành công.
Mỗi hành động được mô tả trong các phần sau.
Kiểm tra xem người dùng có thể tạo tệp đính kèm có tiện ích bổ sung hay không
Bạn có thể tạo tệp đính kèm bằng tiện ích bổ sung thay cho một người dùng đủ điều kiện. Người dùng đủ điều kiện là người dùng là giáo viên trong khoá học mà bạn đang cố gắng tạo bài tập trong khoá học và được cấp giấy phép Teaching & Learning hoặc Education Plus của phiên bản Google Workspace for Education.
Bắt đầu bằng cách xác định xem người dùng có thể tạo tệp đính kèm có tiện ích bổ sung hay không. Bạn có thể thực hiện việc này bằng cách gửi yêu cầu đến điểm cuối userProfiles.checkUserCapability
bằng tham số khả năng CREATE_ADD_ON_ATTACHMENT
. Kiểm tra trường boolean allowed
trong phản hồi; giá trị true
cho biết người dùng đủ điều kiện tạo tệp đính kèm bổ sung.
Python
eligibility_response = (
classroom_service.userProfiles()
.checkUserCapability(
userId="me",
capability="CREATE_ADD_ON_ATTACHMENT",
# The previewVersion is necessary while the method is available in the
# Workspace Developer Preview Program.
previewVersion="V1_20240930_PREVIEW",
).execute()
)
is_create_attachment_eligible = (
eligibility_response.get('allowed')
)
print('User eligibility for add-on attachment creation: '
f'{is_create_attachment_eligible}.')
Định tuyến người dùng dựa trên điều kiện của họ
Điều kiện này xác định xem bạn có thể tạo tệp đính kèm có tiện ích bổ sung cho người dùng hay không.
Người dùng không đủ điều kiện
Nếu người dùng không thể tạo tệp đính kèm tiện ích bổ sung, hãy tạo một bài tập CourseWork
mới có URL nội dung do người dùng chọn làm Link
.
Python
if not is_create_attachment_eligible:
coursework = {
'title': 'My CourseWork Assignment with Link Material',
'description': 'Created using the Classroom CourseWork API.',
'workType': 'ASSIGNMENT',
'state': 'DRAFT', # Set to 'PUBLISHED' to assign to students.
'maxPoints': 100,
'materials': [
{'link': {'url': my_content_url}}
]
}
assignment = (
service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
print(
f'Link Material assignment created with ID: {assignment.get("id")}'
)
Phản hồi chứa một bài tập trong khoá học được yêu cầu có nội dung đính kèm. Người dùng có thể nhấp vào biểu tượng Link
để mở nội dung trên trang web của bạn trong một thẻ mới.
Hình 1. Chế độ xem của giáo viên về bài tập nháp trong Khoá học có Tài liệu liên kết.
Người dùng đủ điều kiện
Hãy làm như sau nếu người dùng có thể tạo tệp đính kèm có tiện ích bổ sung.
- Tạo một bài tập
CourseWork
mới mà không có tệp đính kèm. - Tạo tệp đính kèm có tiện ích bổ sung.
- Đặt
itemId
củaAddOnAttachment
thànhid
của bài tập mới tạo. - Đảm bảo rằng bạn cung cấp URL cho nội dung do người dùng chọn cho mỗi khung hiển thị mà bạn hỗ trợ.
- Đặt
Python
if is_create_attachment_eligible:
coursework = {
'title': 'My CourseWork Assignment with Add-on Attachment',
'description': 'Created using the Classroom CourseWork API.',
'workType': 'ASSIGNMENT',
'state': 'DRAFT', # Set to 'PUBLISHED' to assign to students.
'maxPoints': 100,
}
assignment = (
classroom_service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
print(
f'Empty assignment created with ID: {assignment.get("id")}'
)
attachment = {
'teacherViewUri': {'uri': teacher_view_url},
'studentViewUri': {'uri': student_view_url},
'studentWorkReviewUri': {'uri': grade_student_work_url},
'title': f'Test Attachment {test_label}',
}
add_on_attachment = (
service.courses()
.courseWork()
.addOnAttachments()
.create(
courseId=course_id,
itemId=assignment.get("id"), # ID of the new assignment.
body=attachment,
)
.execute()
)
print(
f'Add-on attachment created with ID: {add_on_attachment.get("id")}'
)
Tiện ích bổ sung này sẽ xuất hiện dưới dạng một thẻ tệp đính kèm trong Lớp học. Các URL được chỉ định trong yêu cầu sẽ mở trong iframe thích hợp cho từng Lượt xem.