Membuat lampiran di luar Google Classroom

Panduan ini membahas cara membuat lampiran add-on di situs atau aplikasi Anda. Interaksinya mirip dengan membuat tugas menggunakan endpoint CourseWork API. Terapkan proses ini untuk memungkinkan pengguna membuat lampiran add-on dari situs atau aplikasi Anda.

Alur kerja

Pada level yang tinggi, perjalanan pembuatan lampiran mengikuti urutan berikut:

  1. Pengguna pengajar membuka situs atau aplikasi Anda. Ia memilih konten untuk ditugaskan kepada siswa.
  2. Pastikan pengguna dapat membuat lampiran add-on.
  3. Jika pengguna tidak dapat membuat lampiran add-on, buat tugas CourseWork dengan URL ke konten yang dipilih sebagai Materi Link.
  4. Jika pengguna dapat membuat lampiran add-on, lakukan tindakan berikut:
    1. Buat tugas.
    2. Membuat lampiran add-on yang ditautkan ke konten yang dipilih dan mengaitkannya dengan tugas baru.
    3. Beri tahu pengajar bahwa tugas berhasil dibuat.

Setiap tindakan dijelaskan di bagian berikut.

Memeriksa apakah pengguna dapat membuat lampiran add-on

Anda dapat membuat lampiran add-on atas nama pengguna yang memenuhi syarat. Pengguna yang memenuhi syarat adalah pengguna yang merupakan pengajar di kursus yang Anda coba buat tugas Kursus Kerja dan memiliki lisensi edisi Google Workspace for Education Teaching & Learning atau Education Plus yang ditetapkan untuknya.

Mulailah dengan menentukan apakah pengguna dapat membuat add-on di Course tertentu. Berikan permintaan ke endpoint courses.checkAddOnCreationEligibility, termasuk ID Kursus.

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}.')

Jika pengguna memenuhi syarat, respons akan berisi nilai isCreateAttachmentEligible boolean yang ditetapkan ke true. Jika pengguna tidak memenuhi syarat, respons tidak akan menampilkan boolean isCreateAttachmentEligible.

Arahkan pengguna berdasarkan kelayakannya

Kelayakan menentukan apakah Anda dapat membuat lampiran add-on untuk pengguna.

Pengguna tidak memenuhi syarat

Jika pengguna tidak dapat membuat lampiran add-on, buat penetapan CourseWork baru dengan URL konten yang dipilih pengguna sebagai 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")}'
  )

Responsnya berisi tugas dalam kursus yang diminta dengan konten yang dilampirkan. Pengguna dapat mengklik Link untuk membuka konten di situs Anda di tab baru.

Buat draf tugas Tugas Kursus dengan Materi Link

Gambar 1. Tampilan pengajar dari draf tugas CourseWork dengan Link Material.

Pengguna yang memenuhi syarat

Lakukan hal berikut jika pengguna dapat membuat lampiran add-on.

  1. Buat tugas CourseWork baru tanpa lampiran apa pun.
  2. Buat lampiran add-on.

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")}'
  )

Add-on akan muncul sebagai kartu lampiran di Classroom. URL yang ditentukan dalam permintaan akan terbuka di iframe untuk setiap Tampilan yang sesuai.