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 perjalanan ini untuk memungkinkan pengguna membuat lampiran add-on dari situs atau aplikasi Anda.

Alur kerja

Pada level tinggi, proses pembuatan lampiran mengikuti urutan berikut:

  1. Pengguna pengajar membuka situs atau aplikasi Anda dan memilih sebagian konten untuk ditetapkan 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. Buat lampiran add-on yang ditautkan ke konten yang dipilih dan kaitkan dengan tugas baru.
  5. Beri tahu pengajar bahwa tugas telah 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 dalam kursus tempat Anda mencoba membuat tugas CourseWork dan memiliki lisensi Teaching & Learning atau Education Plus edisi Google Workspace for Education yang ditetapkan kepada mereka.

Mulai dengan menentukan apakah pengguna dapat membuat add-on di Course tertentu. Kirimkan 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 tersebut akan berisi nilai isCreateAttachmentEligible boolean yang ditetapkan ke true. Jika pengguna tidak memenuhi syarat, respons tidak akan menampilkan boolean isCreateAttachmentEligible.

Merutekan pengguna berdasarkan kelayakannya

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

Pengguna yang tidak memenuhi syarat

Jika pengguna tidak dapat membuat lampiran add-on, buat tugas 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")}'
  )

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

Draf tugas CourseWork dengan Link Materi

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

Pengguna yang memenuhi syarat

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

  1. Buat tugas CourseWork baru tanpa lampiran apa pun.
  2. Membuat 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 yang sesuai untuk setiap Tampilan.