Classroom アプリは、CourseWork
、CourseWorkMaterials
、Announcements
の 3 種類のストリーミング アイテムをサポートしています。このガイドでは CourseWork
の管理方法について説明しますが、すべてのストリーム アイテムの API は類似しています。ストリーム アイテムの種類とその違いの詳細については、API リソースをご覧ください。
CourseWork
リソースは、特定のコース内の生徒に割り当てられた作業項目を表します。これには、追加の資料や、期限や最大スコアなどの詳細が含まれます。CourseWork
には、課題、テスト付きの課題、記述式の質問、多肢選択式の質問の 4 つのサブタイプがあります。Classroom API は、課題、記述式の質問、多肢選択式の質問の 3 つのサブタイプをサポートしています。これらのタイプは CourseWork.workType
フィールドで表されます。
CourseWork
リソースに加えて、完了した作業は StudentSubmission
リソースで管理できます。
課題を作成
CourseWork
は、コースの教師に代わって作成のみ可能です。生徒またはコースの教師ではないドメイン管理者に代わって CourseWork
を作成しようとすると、PERMISSION_DENIED
エラーが発生します。Classroom のさまざまなロールについて詳しくは、ユーザータイプをご覧ください。
courses.courseWork.create
メソッドを使用して CourseWork
を作成する場合は、次のサンプルコードに示すように、リンクを materials
として接続できます。
Java
Python
title
フィールドと workType
フィールドは必須です。それ以外のフィールドはすべて省略可能です。state
が指定されていない場合、CourseWork
はドラフト状態として作成されます。
指定したターゲット url
を使用してリンク リソースを使用し、リンクされたマテリアルを CourseWork
に含めます。Classroom は、title
とサムネイル画像の URL(thumbnailUrl
)を自動的に取得します。Classroom API は、Google ドライブと YouTube の教材もネイティブにサポートしています。これらの教材は、DriveFile リソースまたは YouTubeVideo リソースに同様の方法で含めることができます。
期限を指定するには、dueDate
フィールドと dueTime
フィールドを対応する UTC 時間に設定します。期限には将来の日付を指定してください。
CourseWork
レスポンスには、他の API リクエストで割り当てを参照するために使用できるサーバー割り当て ID が含まれています。
課題を取得する
対応するコースの生徒と教師に代わって CourseWork
を取得できます。ドメイン管理者がコースの教師でない場合でも、ドメイン管理者に代わって CourseWork
を取得することもできます。特定の CourseWork
を取得するには、courses.courseWork.get
を使用します。すべての CourseWork
を取得するには(一部の条件を一致させる場合)、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
CourseWork
を取得する権限があっても、マテリアルまたはマテリアルのメタデータにアクセスする権限が付与されているわけではありません。つまり、管理者がコースのメンバーでない場合、添付されたドライブ ファイルのタイトルが表示されないことがあります。
生徒の回答を管理する
StudentSubmission
リソースは、生徒が CourseWork
に対して行った作業を表します。このリソースには、作業のステータスや評価など、作業に関連するメタデータが含まれます。新しい CourseWork
が作成されると、生徒ごとに StudentSubmission
が暗黙的に作成されます。
以降のセクションでは、生徒の回答を管理する一般的な操作について説明します。
生徒の回答を取得する
生徒は自分の提出物を取得できます。教師はコース内のすべての生徒の提出物を取得できます。ドメイン管理者は、ドメイン内のすべての生徒のすべての提出物を取得できます。各 StudentSubmission
には識別子が割り当てられます。ID がわかっている場合は、courses.courseWork.studentSubmissions.get
を使用して送信を取得します。
次のサンプルに示すように、courses.courseWork.studentSubmissions.list
メソッドを使用して、特定の条件に一致するすべての StudentSubmission
リソースを取得します。
Java
Python
次のサンプルに示すように、userId
パラメータを指定して、特定の生徒に属する StudentSubmission
リソースを取得します。
Java
Python
生徒は、Student
リソースに表示される一意の ID またはメールアドレスで識別されます。現在のユーザーは、"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
StudentSubmission
を取得する権限があっても、添付ファイルまたは添付ファイルのメタデータにアクセスする権限が付与されているわけではありません。つまり、管理者がコースのメンバーでない場合、添付されたドライブ ファイルのタイトルが表示されないことがあります。
生徒の回答に添付ファイルを追加する
生徒の提出物にリンクを添付するには、Link
、DriveFile
、または YouTubeVideo
リソースを添付します。これは、次のサンプルに示すように courses.courseWork.studentSubmissions.modifyAttachments
で行います。
Java
Python
Link
アタッチメントはターゲット url
によって定義されます。Classroom は title
とサムネイル画像(thumbnailUrl
)を自動的に取得します。StudentSubmissions
にアタッチできる教材については、Material
をご覧ください。
StudentSubmission
を変更できるのは、コースの教師またはその所有者である生徒のみです。StudentSubmission
の CourseWorkType
が ASSIGNMENT
の場合にのみ、Materials
を接続できます。
必要なスコープは、リクエスト元のユーザーがコースで持っているロールによって異なります。ユーザーが教師の場合は、次のスコープを使用します。
https://www.googleapis.com/auth/classroom.coursework.students
ユーザーが生徒の場合は、次のスコープを使用します。
https://www.googleapis.com/auth/classroom.coursework.me