このガイドでは、Google Classroom API を構成する主なコンポーネントの概要について説明します。Google Classroom API は、リソースとサービスで構成されています。リソースは、コースや課題など、Google Classroom のエンティティを表し、サービスはこれらのリソースを取得して管理します。これらのエンティティの一部には、Classroom に存在するプロパティに加えて、API 固有の追加プロパティがあります。主なエンティティ タイプは次のとおりです。
エンティティ | Classroom での表現 |
---|---|
コース | 「M. Smith の 4 時間目の数学」と入力します。 |
エイリアス | コースの代替 ID。 |
招待 | クラスにユーザーを追加する手段。 |
学生 | クラスの生徒。 |
教育関係者 | クラスの教師。 |
ユーザー プロフィール | 生徒や教師のコンテキスト外の、より一般的なユーザー。 |
CourseWork | クラスの課題。 |
StudentSubmissions | 解答やワークシートなど、特定の課題に対する生徒の作業。 |
CourseWorkMaterials | クラスの生徒向けの教材。 |
お知らせ | クラスの生徒へのお知らせ。 |
AddOnAttachment | 通常は埋め込み iframe として表示される、課題や教材のコンテンツまたはアクティビティ。 |
トピック | クラス内の課題と資料を視覚的にグループ化したものです。 |
登録 | クラス名簿などのデータが変更されたときにアプリに通知を送信する指示。 |
ほとんどのリソースには、リソースのインスタンスの読み取り、更新、削除などの標準オペレーション用のサービス メソッドがあります。一部のリソースには、特定の課題に割り当てられた生徒のリストを変更するなど、他のオペレーション用のカスタム メソッドもあります。
API リソースとメソッドの詳細については、 Classroom API リファレンスをご覧ください。
リソースの関係の概要
- コースは、Google Classroom の基本的なデータ オブジェクトです。
- エイリアスは、
Courses
の代替識別子として使用されます。 - 招待は、ユーザー プロファイルを
Course
の教師または生徒として招待するために使用されますが、Google Workspace for Education ドメイン管理者によってユーザーが直接追加されることもあります。 - 教師はストリーム アイテムを作成し、コースの生徒と共有します。ストリーム アイテムのタイプは、Coursework、CourseWorkMaterials、Announcements のいずれかです。
CourseWork
とCourseWorkMaterials
は、トピックに視覚的に整理でき、AddOnAttachments を含めることができます。生徒はCourseWork
の StudentSubmissions を送信します。 - デベロッパーは、このデータの一部が変更されたときに通知を受け取るための登録を作成できます。
Google Classroom は、Google Workspace for Education をご利用のドメインでご利用いただけます。Classroom のコンテキストにおけるドメインは、通常、学区を表します。開発目的で Google Workspace for Education のテスト ドメインを作成できます。これにより、実際のユーザーに影響を与えることなく、Classroom の本番環境インスタンスを制御できます。
コースとエイリアス
Courses
は「M. Smith の 4 時間目の数学」と、割り当てられた教師、生徒名簿、メタデータ。各コースは、サーバーによって割り当てられた一意の ID で識別されます。Course
リソースは、名前、説明、場所、時間など、コースに関するすべてのメタデータを具体的にカプセル化します。コースの名簿は、Student、Teacher、Invitation の各リソースとそのメソッドで管理されます。
Aliases
は、コースに関連付けられ、一意の ID の代わりに使用されるクラスの代替識別子です。各エイリアスは、作成者と閲覧者を制限する Namespace に存在します。次の 2 つの Namespace がサポートされています。
- ドメイン: ドメイン Namespace は、すべてのユーザーがアクセスする必要があるが、特定のプログラムに固有ではないエイリアスを作成する場合に便利です。たとえば、コースの代替リスト(MATH 127 や COMSCI 127 など)は、ドメイン Namespace に作成する必要があります。ドメイン名前空間のエイリアスは、ドメイン管理者のみが作成できますが、ドメイン内のすべてのユーザーに表示されます。
- デベロッパー プロジェクト: デベロッパー プロジェクトの Namespace は、アプリに固有のエイリアスの管理に役立ちます。たとえば、コースに代替 ID を使用するアプリケーションは、エイリアスを作成して、その ID を Classroom コースにマッピングできます。この Namespace で作成されたエイリアスは、特定の Google API Console に関連付けられます。アプリケーションのユーザーは、そのアプリケーションのデベロッパー プロジェクトの Namespace でエイリアスを作成して表示できます。
コースのメタデータとエイリアスの管理の詳細については、コースを管理するをご覧ください。
コースの受講者リストとユーザー
Students
と Teachers
は、ユーザー プロファイルとコース間の特定のマッピングであり、コースにおけるユーザーの役割を表します。生徒と教師の指定はグローバルではありません。ユーザーは、あるコースでは教師として割り当てられ、別のコースでは生徒として割り当てられることがあります。「生徒」または「教師」という指定は、特定のコースの特定のユーザーに対する権限のセットを表します。1 つのコースに複数の教師がいたり、生徒が 1 人もいない場合があります。教師と生徒は、いつでもコースに追加または削除できます。
- 学生
Student
リソースは、特定のコースに生徒として登録されているユーザーを表します。生徒は、そのコースの詳細と担当教師を表示できます。
- 教師
Teacher
リソースは、特定のコースを教えるユーザーを表します。教師は、コースの詳細の表示と変更、教師と生徒の表示、追加の教師と生徒の管理を行うことができます。
Invitations
とその関連メソッドは、生徒と教師をコースに追加する便利な方法を提供します。招待状を作成すると、教師と生徒のリソースから直接追加するのではなく、ユーザーがコースに参加するかどうかを選択できるようになります。
UserProfiles
は、Directory API から返されたユーザーの一意の ID またはメールアドレスで識別されるユーザーのドメイン プロファイルへのマッピングを表します。現在のユーザーは、"me"
という省略形を使用して自分の ID を参照することもできます。
UserProfiles
サービスを使用して、生徒と保護者のマッピングである Guardians
を管理し、招待することもできます。Classroom の保護者は、生徒の課題などの一部の情報にアクセスできます。
名簿の管理について詳しくは、教師と生徒を管理するをご覧ください。
ストリーム アイテム
ストリーム アイテムは、コースのメンバーと共有される投稿コンテンツの断片です。デベロッパーと教師は、Announcement
、CourseWork
、CourseWorkMaterial
の 3 種類のストリーム アイテムを作成できます。
教師は、Classroom UI の [ストリーム] ページの上部で Announcements
を作成します。教師は、[授業] タブの [作成] ボタンをクリックして、CourseWork
と CourseWorkMaterials
を作成します。デベロッパーは、Classroom API を使用して、すべてのストリーム アイテム タイプをプログラムで作成できます。
ストリーム アイテムには次の特徴があります。
- ストリームのすべてのアイテムには、Google ドライブのファイル、YouTube 動画、Google フォーム、URL ハイパーリンク、Classroom アドオンの添付ファイルなどの補足資料を含めることができます。
- ストリームのすべてのアイテムをコースの生徒の一部に割り当てることができます。
CourseWork
は、採点対象または採点対象外にすることができます。教師はCourseWork
課題の採点ステータスをいつでも変更できます。- ストリーム アイテムには複数の添付ファイルを含めることができます。
- ストリーム アイテムには、さまざまな種類の添付ファイルを含めることができます。たとえば、1 つの
CourseWork
課題に Google ドライブのファイル、YouTube 動画、Classroom アドオンの添付ファイルが同時に含まれている場合があります。 - ストリーム アイテムには、複数のデベロッパーによるアドオンの添付ファイルが含まれている場合があります。
- デベロッパーは、アドオンの添付ファイルがあるストリーム アイテム リソースの詳細を取得して変更できます。
- デベロッパーは、アドオンの添付ファイルを含む
CourseWork
課題について、生徒の提出物の提出、再取得、返却を行うことができます。 - デベロッパーは、作成した課題の個々の生徒の提出物に対してのみ成績を確定できます。
ストリーム アイテムをコピーしました
教師は、コースをコピーする、課題を再利用する、ストリーム アイテムを複数のコースに公開するなどの方法で、ストリーム アイテムをコピーできます。新しいコピーにはそれぞれ異なる識別子が割り当てられます。Classroom アドオンを開発している場合は、この点を考慮することが重要です。アドオンがこれらのシナリオを処理する方法については、コピーされたコンテンツに関するガイドをご覧ください。
CourseWork と StudentSubmissions
CourseWork
アイテムは、コース内の生徒のグループの課題を表します。生徒の提出物を受け取ることができるのは、このストリーム アイテム タイプのみです。CourseWork
リソースには、説明、期日、最大グレード、作成時間などのメタデータなどの詳細が含まれます。
各 CourseWork
リソースは、次のいずれかのタイプのタスクを表します。
- 生徒がワークシートなどの添付ファイルを提出して完了する課題。
- 記述式の質問または多肢選択式の質問。
CourseWork
アイテムの生徒の提出物は StudentSubmission
で表されます。レスポンスと、状態や割り当てられたグレードなどの追加のメタデータで構成されます。
StudentSubmission
の内容は、対応する CourseWork
項目のタイプによって異なり、次のものを含めることができます。
- 課題で提出されたワークシートと添付ファイル(タイトル、サムネイル、URL、Drive や YouTube などの適切な API で使用できる ID を含む)。
- 記述式問題または選択式問題の回答。
課題と生徒の提出物の管理について詳しくは、課題を管理するをご覧ください。
CourseWorkMaterials と Announcements
CourseWork
と同様に、CourseWorkMaterials
はコース内の生徒のグループに割り当てられたコンテンツを表します。各リソースには、タイトルや説明などの詳細と、補足資料が含まれています。ただし、CourseWork
とは異なり、CourseWorkMaterials
では生徒がアーティファクトを提出する必要はありません。そのため、期限はなく、CourseWorkMaterials
に StudentSubmissions
は存在しません。教師は CourseWorkMaterials
を使用して、推奨される読み物、シラバス、クラスの規則などを投稿できます。
Announcements
は生徒のグループと共有されたコンテンツも表しますが、タイトルなどの詳細はなく、CourseWork
や CourseWorkMaterials
などの Topics
で整理することはできません。教師は、クラスにリマインダーや通知を送信するためにこれらを使用することがあります。
トピック
Topics
は、クラス内の CourseWork
と CourseWorkMaterials
を視覚的に整理するために使用されます。たとえば、課題を「任意」と「必須」にグループ化したり、「ユニット 1」と「ユニット 2」にグループ化したりするために使用できます。
Classroom アドオン
アドオンは、通常 iframe に表示される、デベロッパーが提供する UI とバックエンドです。アドオンは、ストリーム アイテムの添付ファイルとして表示されます。ストリーム アイテムは、Announcements
、CourseWork
、CourseWorkMaterials
のいずれかです。アドオンの添付ファイルは AddOnAttachment
で表されます。
アドオンの添付ファイルは、アクティビティまたはコンテンツにできます。
- 課題の添付ファイルでは、生徒が個別の提出物を完成させて提出する必要があります。たとえば、クイズ、絵、ゲームなどがあります。アクティビティの提出は、必要に応じて採点できます。
- コンテンツの添付ファイルは、生徒の提出を必要としません。生徒は添付ファイルを提出する必要がなく、採点もされません。写真、記事、動画などが該当します。
詳しくは、アドオンのデベロッパー ガイドをご覧ください。
登録
アプリケーションは、Google Classroom で特定のデータが変更されたときに通知を受け取るように登録できます。たとえば、コースの登録者が更新された場合などです。Registrations
は、これらの通知をアプリケーションに送信する指示を表します。
詳しくは、プッシュ通知ガイドをご覧ください。