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 trên trang web hoặc ứng dụng của bạn. Hoạt động tương tác tương tự như việc tạo bài tập bằng điểm cuối của API CourseWork. Hãy 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 trên trang web hoặc ứng dụng của bạn.
Quy trình làm việc
Nhìn chung, hành trình tạo tệp đính kèm tuân theo trình tự sau:
- Một người dùng là giáo viên mở trang web hoặc ứng dụng của bạn. Người đó chọn một phần nội dung để giao cho học viên.
- Kiểm tra để đảm bảo rằng người dùng có thể tạo tệp đính kèm bằng tiện ích bổ sung.
- Nếu người dùng không thể tạo tệp đính kèm bằng tiện ích bổ sung, hãy tạo một bài tập trên CourseWork kèm theo URL đến nội dung đã chọn dưới dạng Link Material.
- Nếu người dùng có thể tạo tệp đính kèm bằng 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 của tiện ích bổ sung liên kết đến nội dung đã chọn và liên kết nội dung đó 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 bằng 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 mặt cho 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 phiên bản Google Workspace for Education cho Teaching & Learning hoặc Education Plus.
Bắt đầu bằng cách xác định xem người dùng có thể tạo tiện ích bổ sung trong một Course
nhất định hay không.
Gửi yêu cầu đến điểm cuối courses.checkAddOnCreationEligibility
, bao gồm cả Mã khoá học.
Python
eligibility_response = (
classroom_service.courses()
.checkAddOnCreationEligibility(courseId=course_id)
.execute()
)
is_create_attachment_eligible = (
eligibility_response.get('isCreateAttachmentEligible')
)
print(f'User eligibility for course {eligibility_response.get("courseId")}'
f': {is_create_attachment_eligible}.')
Nếu người dùng đủ điều kiện, phản hồi sẽ chứa giá trị boolean isCreateAttachmentEligible
được đặt thành true
. Nếu người dùng không đủ điều kiện, phản hồi sẽ không trả về giá trị boolean isCreateAttachmentEligible
.
Định tuyến người dùng dựa trên điều kiện của họ
Điều kiện sử dụng sẽ quyết định việc bạn có thể tạo tệp đính kèm bằng 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 bằng tiện ích bổ sung, hãy tạo một bài tập CourseWork
mới với URL nội dung do người dùng chọn dưới dạng 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 này chứa một bài tập trong khoá học được yêu cầu và đính kèm nội dung. Người dùng có thể nhấp vào 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ề một bài tập nháp trong Khoá học bằng Link Material.
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 bằng 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
postId
củaAddOnAttachment
thànhid
của mục chỉ định mới tạo. - Đảm bảo rằng bạn cung cấp URL đến nội dung do người dùng chọn cho từng Chế độ xem 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 xuất hiện dưới dạng thẻ đính kèm trong Lớp học. Các URL được chỉ định trong yêu cầu sẽ mở trong iframe phù hợp cho từng Chế độ xem.