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 tingkat tinggi, perjalanan pembuatan lampiran mengikuti urutan ini:

  1. Pengguna pengajar membuka situs atau aplikasi Anda. Mereka memilih 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 hal 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 di kursus tempat Anda mencoba membuat tugas CourseWork dan memiliki lisensi edisi Google Workspace for Education Teaching & Learning atau Education Plus yang ditetapkan untuknya.

Mulailah dengan menentukan apakah pengguna dapat membuat lampiran add-on. Anda dapat melakukannya dengan membuat permintaan ke endpoint userProfiles.checkUserCapability dengan parameter kemampuan CREATE_ADD_ON_ATTACHMENT. Periksa kolom allowed boolean dalam respons; nilai true menunjukkan bahwa pengguna memenuhi syarat untuk membuat lampiran add-on.

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(f'User eligibility for course {course_id}'
      f': {is_create_attachment_eligible}.')

Merutekan pengguna berdasarkan kelayakan mereka

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 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 Materi Link

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

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 yang sesuai untuk setiap Tampilan.