Halaman ini membahas detail penerapan untuk membuat lampiran, tindakan yang direkomendasikan saat pengguna membuka lampiran, dan cara menangani tugas siswa. Perhatikan bahwa Anda mungkin perlu memberikan parameter terkait lampiran saat membuat permintaan ini.
Membuat lampiran
Buat lampiran dengan mengirimkan permintaan CREATE ke endpoint courses.*.addOnAttachments.create yang sesuai. Permintaan Anda harus menyertakan instance AddOnAttachment di isi permintaan.
Kolom berikut wajib diisi saat membuat lampiran:
title: nama string lampiran.teacherViewUri: URI untuk Tampilan Pengajar lampiran.studentViewUri: URI untuk Tampilan Siswa lampiran.studentWorkReviewUri: URI bagi pengajar untuk melihat tugas siswa pada lampiran. Kolom ini hanya diperlukan untuk lampiran jenis aktivitas.
Anda dapat menyertakan beberapa kolom opsional berikut:
dueDatedandueTimejika menentukan kapan lampiran harus diserahkan.maxPoints: nilai maksimum untuk lampiran. Harus berupa nilai bukan nol jika Anda ingin mendukung pengiriman nilai. Hanya berlaku untuk lampiran jenis aktivitas.
Lihat referensi resource AddOnAttachment untuk mengetahui detail selengkapnya tentang kolom ini.
Memvalidasi kredensial dan peran pengguna
Iframe Tampilan Siswa, iframe Tinjauan Tugas Siswa, dan Tampilan Pengajar iframe semuanya dimaksudkan untuk menampilkan konten kepada pengguna, bukan mengubah tugas Classroom. Pertimbangkan untuk melakukan hal berikut saat salah satu tampilan ini dibuka:
- Dapatkan kredensial OAuth untuk pengguna.
- Buat permintaan
courseWork.getAddOnContext,courseWorkMaterials.getAddOnContextatauannouncements.getAddOnContextberdasarkanitemTypeuntuk memvalidasi peran pengguna. - Periksa respons untuk melihat apakah
TeacherContextatauStudentContextada. Hanya satu yang dapat ditampilkan, yang sesuai dengan peran pengguna dalam kursus. - Jika pengguna saat ini adalah siswa dan
itemTypeadalahcourseWork, catatsubmissionIddari respons dengan tugas siswa.submissionIdscocok di seluruh iframe add-on, dan diperlukan untuk mengirimkan nilai kembali dan untuk menampilkan tugas siswa kepada pengajar di alat penilaian. - Jika
attachmentIdsudah diketahui oleh add-on, tampilkan UI lampiran yang sesuai. - Jika tidak, lampiran ini pasti telah disalin dari item atau kursus aliran lain. Lihat panduan Menangani konten yang disalin untuk mengetahui rekomendasi tentang skenario ini.
Detail tugas siswa
Alur kerja pengiriman tugas yang umum mengikuti langkah-langkah berikut:
- Siswa meluncurkan
studentViewUriuntuk menyelesaikan aktivitas. - Add-on mengambil
submissionIddari metodegetAddOnContextmenggunakan kredensial siswa. submissionIddanattachmentIddisimpan oleh developer add-on sebagai ID unik tugas siswa. Jika pengajar menyalin tugas di Classroom, Anda dapat menggunakan kunci gabungan dari kedua parameter ini untuk menampilkan lampiran baru dalam tugas yang disalin. Lihat halaman kami tentang konten yang disalin untuk mengetahui detail selengkapnya.- Pengajar yang ingin meninjau tugas siswa meluncurkan
studentWorkReviewUri. Permintaan ini mencakup parameter kueri berikut:courseId,itemId,itemType,attachmentId, dansubmissionId. - Developer add-on menggunakan keempat ID ini untuk mengambil tugas siswa. Gunakan
endpoint
courses.courseWork.addOnAttachments.studentSubmissionsuntuk mengambil atau mengubah informasi tentang tugas siswa.
Mendeteksi status pengiriman tugas
Kirim permintaan GET ke endpoint
courses.courseWork.addOnAttachments.studentSubmissions untuk mendapatkan
detail tentang submissionId tertentu. Anda akan menerima objek AddOnAttachmentStudentSubmission, yang berisi nilai tugas (pointsEarned) dan status saat ini (postSubmissionState). Status pengiriman tugas dapat berupa salah satu nilai berikut:
NEW, jika siswa belum pernah mengakses tugas.CREATED, jika siswa telah membuat tugas, tetapi belum mengirimkannya.TURNED_IN, jika siswa telah mengirimkan tugasnya kepada pengajar.RETURNED, jika pengajar telah mengembalikan tugas kepada siswa.RECLAIMED_BY_STUDENT, jika siswa telah "membatalkan pengiriman" tugasnya.
Gunakan endpoint ini untuk mendeteksi status tugas siswa di add-on Anda. Kemudian, Anda dapat menyesuaikan tampilan atau opsi yang diberikan kepada siswa, bergantung pada status yang ditampilkan. Hal ini dapat mencakup fitur seperti:
- Menampilkan status pengiriman tugas dalam add-on Anda. Hal ini dapat membantu siswa menghindari potensi kebingungan dan memastikan mereka tidak salah mengirimkan tugas.
- Membatasi hak istimewa pengeditan tugas. Jika tugas memiliki status
CREATEDatauRECLAIMED_BY_STUDENT, siswa mungkin diizinkan untuk mengedit tugasnya. Jika tugas memiliki statusTURNED_INatauRETURNED, siswa mungkin tidak diizinkan untuk mengedit tugasnya.
Nilai dan beberapa lampiran
Hanya satu lampiran add-on yang dapat digunakan untuk menetapkan nilai untuk satu tugas. Jika pengajar membuat lebih dari satu lampiran jenis aktivitas yang memberikan nilai maxPoints, hanya lampiran pertama yang dapat menetapkan nilai tugas. Biarkan nilai maxPoints tidak ditetapkan atau tetapkan ke nol untuk menonaktifkan pengiriman nilai untuk lampiran.
Menetapkan nilai tugas
Anda dapat mengubah tugas siswa dengan mengirimkan permintaan PATCH ke endpoint
courses.courseWork.addOnAttachments.studentSubmissions. Isi permintaan harus menyertakan instance AddOnAttachmentStudentSubmission dengan nilai yang diubah. Tetapkan kolom pointsEarned untuk mengubah nilai tugas.
Nilai yang diteruskan di pointsEarned akan menjadi draf nilai yang dapat dilihat oleh pengajar di UI Classroom. Pengajar dapat mengubah draf nilai sebelum mengembalikan tugas kepada siswa. Lihat Ringkasan penilaian di
UI Classroom untuk mengetahui detail tentang cara nilai
ditampilkan kepada pengajar.
Perhatikan bahwa Anda dapat menetapkan nilai dengan pointsEarned hanya jika hal berikut benar:
- Lampiran harus memiliki nilai
maxPointspositif. - Add-on harus menjadi pembuat asli lampiran.
Perhatikan juga bahwa Anda dapat mengubah nilai maxPoints AddOnAttachment yang sudah dibuat dengan mengirimkan permintaan PATCH ke endpoint addOnAttachments.
Kapan harus menetapkan nilai
Anda memiliki beberapa pilihan terkait kapan nilai dikirimkan kembali ke Google Classroom. Perbedaan pentingnya adalah apakah Anda memilih untuk menyimpan kredensial pengajar, karena hanya pengajar yang dapat mengubah nilai.
Ada dua momen add-on saat Anda dapat mengirimkan nilai ke Google Classroom: saat siswa menyelesaikan tugasnya atau saat pengajar membuka tugas siswa di iframe Tinjauan Tugas Siswa.
Jika ingin menetapkan nilai saat siswa menyelesaikan tugas, Anda harus menyimpan kredensial offline pengajar, lalu mengambil dan menggunakannya untuk mengubah nilai saat siswa menyelesaikan tugas. Metode ini memberikan beberapa potensi manfaat:
- Memberikan pembaruan nilai yang lancar. Pengajar tidak perlu melakukan tindakan khusus apa pun agar nilai diisi di UI Classroom.
- Memberikan insight real-time tentang progres kelas melalui tugas. Dengan menetapkan nilai saat siswa menyelesaikan lampiran, pengajar dapat memahami pemahaman siswa tanpa membuka setiap tugas.
Perhatikan bahwa pendekatan ini juga memungkinkan pendekatan asinkron untuk sinkronisasi nilai. Anda dapat melakukan polling secara berkala pada endpoint AddOnAttachmentStudentSubmission untuk mendeteksi kapan siswa telah mengirimkan tugasnya. Setelah dikirimkan, tetapkan nilai tugas menggunakan kredensial yang disimpan.
Jika tidak ingin memuat kredensial pengajar selama sesi siswa, Anda dapat menggunakan kredensial pengajar aktif saat mereka memuat tugas siswa di iframe Tinjauan Tugas Siswa. Namun, hal ini mungkin tidak memberikan pengalaman pengguna yang sangat lancar karena nilai di UI Classroom tidak diperbarui secara real time dan pengajar akan diminta untuk membuka iframe Tinjauan Tugas Siswa setiap tugas.
Mendeteksi perubahan nilai tugas
Pengajar dapat mengedit setelan nilai di Classroom setelah tugas dibuat. Pengeditan tersebut dapat mencakup:
- Mengubah nilai poin yang ditetapkan.
- Mengubah nilai
maxPointstugas. - Mengubah apakah tugas harus dinilai atau tidak.
Untuk melihat setelan penilaian tugas saat ini, sebaiknya kirim
permintaan GET ke endpoint courses.courseWork. Respons ini mencakup nilai maxPoints saat ini. Tugas yang tidak dinilai memiliki nilai maxPoints nol atau null.
Jika Anda telah mengirimkan nilai kembali ke Classroom, gunakan endpoint courses.courseWork.addOnAttachments.studentSubmissions untuk mengambil atau mengubah nilai untuk lampiran add-on. Nilai ditetapkan menggunakan kolom pointsEarned. Pertimbangkan untuk memeriksa dan, jika perlu, memperbarui nilai ini jika produk Anda memungkinkan pengajar mengedit skor siswa untuk aktivitas tertentu.