Classroom 中的作業稱為 CourseWork 項目,位於任何 Classroom 課程的「課堂作業」頁面。雖然作業項目有四種類型,但本指南只會著重於「作業」類型。如要瞭解如何管理其他類型的課堂作業,請參閱這篇課堂作業管理指南。
Google Classroom 提供兩種方式,可與作業工作流程整合:Classroom 分享按鈕和 Classroom API。分享按鈕可讓使用者透過 Classroom 彈出式對話方塊,將內容分享為任何訊息串項目;而 Classroom API 則可提供從頭到尾的作業工作流程,包括建立作業、建立及管理學生提交內容,以及傳回成績。
我們將在此說明這兩項開發人員產品的主要差異。 具體來說,我們會說明實作上的差異,以及作業生命週期的各個階段:建立作業、學生提交作業,以及評分/意見回饋。
瞭解作業生命週期
在說明共用按鈕和 CourseWork API 的差異之前,我們先定義在 Classroom 環境中,我們認為的作業生命週期。這有助於瞭解老師和學生在 Classroom 中與作業的互動情形。
整合 Classroom 作業時,請注意以下五個主要步驟:
- 已建立指派作業。
- 與學生共用作業。
- 學生完成作業。
- 學生將作業提交給老師。
- 老師查看作業並評分。
與 Classroom 作業整合後,師生就能在 Classroom 和第三方應用程式之間順暢切換。使用者不必管理作業或學生提交內容的詳細資料,而是依賴您的應用程式為他們管理這些詳細資料。

導入作業
分享按鈕和 CourseWork API 的第一個差異在於「實作」。從開發人員的角度來看,分享按鈕是將內容分享到 Classroom 的簡單方法,因為只需要納入必要的 JavaScript 資源,並新增分享按鈕代碼即可。最簡單的 Classroom 分享按鈕整合形式如下列程式碼片段所示:
<script src="https://apis.google.com/js/platform.js" async defer></script>
<g:sharetoclassroom url="http://url-to-share" size="32"></g:sharetoclassroom>
另一方面,CourseWork API 是 Google Classroom API REST API 的一部分,因此需要使用 Google Cloud 控制台設定及啟用 API 金鑰,並遵循整合 API 的最佳做法。如果您的平台已運用其他 Classroom API 功能 (例如名冊),這就不是什麼大問題。
建立及共用作業
分享按鈕和 CourseWork API 都能完成作業工作流程的前兩個步驟,也就是建立作業並與學生分享,但選擇解決方案前,請先考量以下幾個重要差異。
這兩種解決方案的核心功能都是將連結或檔案發布為 Classroom 作業。如果老師必須在 Classroom 和第三方應用程式之間複製及貼上內容,這項功能就能提供強大的工作流程。這兩種解決方案都支援將內容發布為作業,但您應考量應用程式是否需要彈性,將內容發布為其他類型的作業,甚至是公告。
這兩項服務都會顯示所有 Classroom 貼文類型,測驗作業除外。如要查看所有貼文類型的摘要,以及是否會顯示這些貼文,請參閱下文。
| 貼文類型 | 分享按鈕 | CourseWork API |
|---|---|---|
| 指派項目 | X | X |
| 測驗作業 | ||
| 問題:簡答 | X | X |
| 問題:選擇題 | X | X |
| 材質 | X | X |
| 公告 | X | X |
您也可以透過程式,為這兩種解決方案指定標題和說明等功能。雖然使用者可透過分享按鈕整合功能,在彈出式對話方塊中設定截止日期、主題、個人化模式和點數等欄位,但第三方應用程式無法以程式輔助方式設定這些欄位。另一方面,API 會公開所有這些欄位,供讀取和寫入存取。
修改指派作業
整合 Classroom API 的好處之一,就是使用者不必手動同步處理作業的變更詳細資料。分享按鈕缺少以程式輔助方式更新或刪除作業的功能,因此使用者必須透過 Classroom 使用者介面進行任何修改。
CourseWork API 可讓您修改及刪除應用程式建立的作業,也能擷取發布至使用者課程的任何作業詳細資料。但請注意,如果 CourseWork 項目不是由同一個開發人員控制台建立,該控制台就無法修改這些項目。這項權限模式會延伸至作業生命週期的其餘部分,例如管理學生提交的作業和成績,但無法存取這些 CourseWork 項目。
自動同步處理作業
透過 Pub/Sub 推播通知,應用程式可以訂閱通知,在 CourseWork 項目及其相關學生提交內容發生變更時觸發事件。這樣一來,應用程式就不必持續檢查 Classroom 內容是否更新,可輕鬆同步處理作業。
完成及提交作業
每項作業都與 N 學生提交內容相關聯,其中 N 是指派作業的學生人數。換句話說,每項作業都會有與每位學生相關聯的學生提交內容,且可透過專屬 ID 存取。系統會自動建立這些學生提交的作業,您的應用程式可透過學生提交的作業 GET 和 LIST 端點擷取這些作業。
分享按鈕和 CourseWork API 都支援在作業中新增連結或檔案,供學生繳交。分享按鈕可透過與老師指派作業建立對話方塊類似的工作流程,以及透過 studentSubmissions.modifyAttachments 端點的 CourseWork API 達成此目的。不過,由於前文詳述的 API 權限限制,這項功能僅適用於應用程式建立的 CourseWork 項目。但分享按鈕不受此限制,學生可以將作業新增至 Classroom 中選取的任何作業。
結束學生工作流程
如果平台不支援建立作業,CourseWork 權限限制就沒有用處。不過,第三方平台可以限制學生只能透過共用按鈕繳交作業,因此學生不會繳交錯誤的作業,也不會忘記繳交作業。
查看及評分作業
作業生命週期的最後一個階段是發還給老師。學生成功繳交作業後,老師就能以最適合的方式審查作業。如果是儲存在雲端硬碟中的檔案,則可以直接在 Classroom 評分工具中查看。但 Classroom 評分員無法存取第三方應用程式。這項體驗的影響是老師在檢閱和評分作業時,必須瀏覽多個分頁。
分享按鈕目前無法用於評分及退還作業。雖然目前無法透過 API 存取學生繳交作業的留言等功能,但您可以透過 studentSubmissions.patch 和 studentSubmissions.return 端點,評分並將成績發還給學生。只有課堂作業串流項目 (作業和問題類型) 可以指定成績。只能以數字形式呈現,且可指派為草稿或最終成績。
差異摘要
為總結前幾節討論的內容,下表將針對上述四個類別,並排比較分享按鈕和 CourseWork API:實作、建立及分享作業、完成及提交作業,以及檢閱及評分作業。
| 分享按鈕 | CourseWork API | |
|---|---|---|
| 導入作業 | 只需幾行 JavaScript 程式碼,即可輕鬆快速地導入 | 需要設定 API 金鑰、在管理控制台中啟用 API,並密切監控 |
| 建立及分享作業 |
|
|
| 完成並提交作業 |
|
|
| 查看及評分作業 | 無法指定或傳回成績 |
|