Classroom UI 支援五種課堂作業類型:作業、測驗作業、簡答題、選擇題和教材。Classroom API 目前支援三種類型,即作業、簡答題和選擇題,這些類型在 API 中稱為 CourseWorkType
。
如要存取此功能,您可以使用 CourseWork 資源,此資源代表已在特定課程中指派給學生的作業或問題,包括任何其他教材和詳細資料,例如截止日或最高得分。
除了 CourseWork 資源外,您也可以使用 StudentSubmission
資源管理已完成的作業。以下各節將詳細說明這些方法。
建立作業
您只能代表課程老師建立作業,如果嘗試代表學生在課程中建立作業,系統會傳回 403 PERMISSION_DENIED
錯誤。同樣地,網域管理員也無法為自己未教授的課程建立作業,如果嘗試透過 API 執行這項操作,也會導致 403 PERMISSION_DENIED
錯誤。
使用 courses.courseWork.create
方法建立作業時,您可以附加連結做為 materials
,如以下程式碼範例所示:
Java
Python
結果包含伺服器指派的 ID,可用於在其他 API 要求中參照指派。
如要在透過 Classroom API 建立的作業中加入連結教材,請使用連結資源,指定目標網址。Classroom 會自動擷取標題和縮圖圖片。Classroom API 也原生支援 Google 雲端硬碟和 YouTube 教材,可透過類似的方式加入 DriveFile 資源或 YouTubeVideo 資源。
如要指定截止日期,請將 dueDate
和 dueTime
欄位設為對應的世界標準時間。截止日必須是未來的日期。
擷取作業和問題
您可以為相應課程的學生和老師,或網域管理員擷取作業和問題。如要擷取特定作業或問題,請使用 courses.courseWork.get。如要擷取所有作業或問題 (可選配對某些條件),請使用 courses.courseWork.list。
所需的範圍取決於要求使用者在課程中的角色。如果使用者是學生,請使用下列其中一個權限範圍:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
如果使用者是老師或網域管理員,請使用下列其中一個權限範圍:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
即使具備擷取作業或問題的權限,也不代表具備存取教材或教材中繼資料的權限。實際上,如果管理員不是課程成員,就可能看不到附加的雲端硬碟檔案標題。如要讓管理員存取使用者檔案,請參閱全網域委派指南。
管理學生的答案
StudentSubmission
資源代表學生在作業或問題中完成的作業和成績。建立新問題或作業時,系統會為每位學生隱含建立 StudentSubmission
資源。
以下各節將說明管理學生回應的常見動作。
擷取學生回覆
學生可以擷取自己的提交內容,老師可以擷取課程中所有學生的繳交內容,網域管理員可以擷取網域中所有學生的提交內容。每份學生提交內容都會指派一個 ID;如果您知道 ID,請使用 courses.courseWork.studentSubmissions.get
擷取該 ID。
使用 courses.courseWork.studentSubmissions.list
方法,取得符合某些條件的 StudentSubmission
資源,如以下範例所示:
Java
Python
指定 userId
參數,擷取屬於特定學生的 StudentSubmission
資源,如以下範例所示:
Java
Python
學生的識別資訊是使用者專屬 ID 或電子郵件地址,由 Google Admin SDK 傳回。目前使用者也可以使用 "me"
速記符號參照自己的 ID。
您也可以取得學生提交的所有課程作業。如要這麼做,請使用文字常值 "-"
做為 courseWorkId
,如以下範例所示:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
所需的範圍取決於要求使用者在課程中的角色。如果使用者是老師或網域管理員,請使用下列範圍:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
如果使用者是學生,請使用下列範圍:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
即使您有權存取學生提交的內容,也不代表您有權存取附件或附件中繼資料。實際上,如果管理員不是課程成員,可能就看不到附加的雲端硬碟檔案名稱。如要允許管理員存取使用者檔案,請參閱全網域委派指南。
在學生回覆中加入附件
您可以附加 Link
、DriveFile
或 YouTubeVideo
資源,藉此附加學生提交作業的連結。這項操作會使用 courses.courseWork.studentSubmissions.modifyAttachments
,如以下範例所示:
Java
Python
連結附件是由目標網址定義;Classroom 會自動擷取標題和縮圖。如要瞭解其他素材資源,請參閱各自的參考頁面。
只有課程老師或課程擁有者可以修改 StudentSubmission
。只有在學生繳交作業的 CourseWorkType
為 ASSIGNMENT
時,才能附加 Materials
。
所需的範圍取決於要求使用者在課程中的角色。如果使用者是老師,請使用下列範圍:
https://www.googleapis.com/auth/classroom.coursework.students
如果使用者是學生,請使用下列範圍:
https://www.googleapis.com/auth/classroom.coursework.me