Google Classroom の生徒と教師の役割は、コースにおけるユーザーの役割を表します。ユーザーは、あるコースでは教師として、別のコースでは生徒として割り当てることができます。「生徒」または「教師」という指定は、特定のコースの特定のユーザーに対する権限のセットを表します。
- 学生
Studentリソースは、生徒として登録されているユーザーを表します。特定のコースで利用できます。生徒は、そのコースの詳細と担当教師を表示できます。
- 教師
Teacherリソースは、特定のコースを教えるユーザーを表します。教師は、コースの詳細の表示と変更、教師と生徒の表示、追加の教師と生徒の管理を行うことができます。各コースには、コースの所有権の譲渡などの設定を管理できる教師である、メインの教師(コースの所有者)がいます。
生徒と教師は、Directory API によって返されるユーザーの一意の ID またはメールアドレスで識別されます。現在のユーザーは、"me" という省略形を使用して自分の ID を参照することもできます。
Classroom API を使用した直接管理権限
Classroom API を使用してコースにユーザーを直接追加または削除する場合、管理者、生徒、教師には異なる権限が付与されます。
管理者
ドメイン管理者は、次の条件を満たす場合に、招待フローをバイパスして生徒と教師をコースに直接追加できます。
- 追加されるユーザーが管理者のドメインに属している。
- コースの主担任またはコースのオーナーが、管理者のドメインに属している。
管理者のドメイン外のユーザーまたはコースの場合、アプリケーションは invitations.create メソッドで招待状を送信して、ユーザーの同意を得る必要があります。
学生
生徒は students.create を呼び出してコースの enrollmentCode を指定することで、コースに自分自身を追加できます。enrollmentCode は、Course リソースに含まれるコースの一意の識別子です。Classroom ウェブ アプリケーションでは、[enrollmentCode] は [ストリーム] タブとコースの詳細ページで利用できます。
教師
教師はユーザーをコースに直接追加することはできません。invitations.create メソッドを使用して、生徒や他の教師をコースに招待する必要があります。
次の表に、Teacher リソースと Student リソースの create メソッドと delete メソッドに対するリクエストを行うことが許可されているユーザーを示します。
| 管理者 | 教師 | 学生 | |
|---|---|---|---|
CreateTeacher |
✔️ | ✖️ | ✖️ |
DeleteTeacher |
✔️ | ✔️ | ✖️ |
CreateStudent |
✔️ | ✖️ | ✔️ 1 |
DeleteStudent |
✔️ | ✔️ | ✔️ 2 |
1 生徒はコースに自分自身を追加することしかできません。
2 生徒はコースから自分自身を削除することのみが可能です。
教師を管理する
ドメイン管理者は、次の例に示すように、teachers.create を使用して、ドメイン内の教師をコースに直接追加できます。
.NET
Java
PHP
Python
副担任は、teachers.delete メソッドを使用して、コースから他の教師を削除できます。この操作では、指定した教師がコースから削除されるだけで、他のコースへの割り当てやユーザー プロファイルには影響しません。
コースの所有者を管理する
ドメイン管理者は、教師間でコースのオーナー権限を譲渡できます。重要な詳細については、コースの所有者を更新するセクションをご覧ください。
生徒を管理する
ドメイン管理者は、students.create メソッドを使用して、ドメイン内の生徒を直接追加できます。生徒がコースに直接登録する場合は、enrollmentCode が必要です。
.NET
Java
PHP
Python
students.delete メソッドを使用してコースから生徒を削除すると、指定したコースからのみ削除され、他のコースへの登録やユーザー プロファイルには影響しません。
ユーザーのコースを取得する
生徒または教師のコースのリストを取得するには、courses.list を呼び出し、対応するユーザーの studentId または teacherId を指定します。
1 つの courses.list() リクエストで studentId と teacherId の両方を設定することはできません。特定の教師と生徒が登録されているコースのリストを取得するには、ユーザーごとに個別の courses.list() リクエストを行います。次に、2 つの結果セットの共通部分を見つけます。
ユーザーのプロフィールを取得する
ID や名前など、ユーザーのプロフィールを取得するには、リクエストしているユーザーの ID、メールアドレス、または「me」を指定して userProfiles.get を呼び出します。emailAddress フィールドを取得するには、classroom.profile.emails スコープを含める必要があります。
返される id は、一致する studentId または teacherId を含む Directory API ユーザー リソースに対応します。