Tạo tệp đính kèm bên ngoài Google Lớp học

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 tương tự như tạo bài tập bằng API CourseWork điểm cuối. 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, hành trình tạo tệp đính kèm tuân theo trình tự sau:

  1. 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 đoạn nội dung để giao cho học viên.
  2. Kiểm tra để đảm bảo rằng người dùng có thể tạo tiện ích bổ sung tệp đính kèm.
  3. 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 CourseWork gán URL cho nội dung đã chọn dưới dạng Tài liệu đường liên kết.
  4. 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:
    1. Tạo bài tập.
    2. Tạo tệp đính kèm bằng tiện ích bổ sung liên kết đến nội dung đã chọn và liên kết tài khoản đó với bài tập mới.
  5. Thông báo cho giáo viên rằng bài tập đã được tạo thành công.

Mỗi thao tác đượ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 tiện ích bổ sung đính kèm thay mặt cho người dùng đủ điều kiện. Đủ điều kiện người dùng là một 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 của Khóa học trong có tính năng Giảng dạy và Học tập hoặc Education Plus Giấy phép phiên bản Google Workspace for Education được cấp cho họ.

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 boolean Đã đặt giá trị isCreateAttachmentEligible 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 sử dụng

Việc bạn có đủ điều kiện tạo tệp đính kèm bằng tiện ích bổ sung hay không sẽ quyết định xem bạn có thể tạo tệp đính kèm 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 CourseWork mới gán giá trị bằng 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 có chứa một bài tập trong khóa học được yêu cầu có nội dung được đính kèm. Người dùng có thể nhấp vào Link để mở nội dung trong trang web của bạn trong một .

Soạn thảo bài tập trên CourseWork bằng tài liệu liên kết

Hình 1. Chế độ xem của giáo viên về bài tập bản nháp của Bài tập trên lớp 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.

  1. Tạo một bài tập CourseWork mới mà không có tệp đính kèm.
  2. Tạo tệp đính kèm bằng tiện ích bổ sung.

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 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, mở trong iframe cho từng Chế độ xem.