Classroom とサードパーティ製ツールを両方活用している教師は、複数のプラットフォームでコースと名簿を設定するという課題に直面しています。これは、CSV ファイルをアップロードするか、メールアドレスを 1 つずつ入力して手動で行う必要があります。ただし、Classroom API を使用すると、サードパーティ製ツールは API の最も一般的なユースケースである名簿のインポート と統合することで、教師の作業負荷を軽減できます。
名簿のインポートを使用すると、サードパーティ プラットフォームは、教師または管理者の権限 を使用して、コースごとにコースのメタデータ、教師、生徒を取得できます。教師は担当するコースの詳細を取得できますが、管理者はドメイン全体のすべてのコース の詳細にアクセスできます。この柔軟性により、デベロッパーは管理者の認証情報を使用して、個々の教師レベルまたはドメイン全体で Classroom の名簿をプラットフォームにシームレスにオンボーディングできます。
名簿のインポート統合の技術的な詳細に入る前に、ワークフローの例を確認しましょう。
サードパーティ製アプリケーションで、教師は Classroom コースをインポートするオプションを選択します。
サードパーティ製アプリケーションは、Classroom API を介して
courses.listメソッドを呼び出します。これにより、教師のすべてのコースを含むレスポンス JSON が返されます。JSON レスポンスから、サードパーティ製アプリケーションは教師のコースのタイトルを表示し、教師が 1 つ選択できるようにします。次のステップに進むには、アプリケーションでコース ID を追跡する必要があります。
選択したコース ID を使用して、サードパーティ製アプリケーションは
students.listとteachers.listメソッドを呼び出し、ウェブサイトにすべての名前を表示して、教師がインポートを確認できるようにします。students.listレスポンス JSON とteachers.listレスポンス JSON で返されたメールを使用して、サードパーティ製アプリケーションは、プラットフォームで新しくインポートされたコースに参加するようユーザーに招待します。
ワークフローで説明した各メソッドについて、API Explorer を使用して各メソッドの動作を確認できます。このガイドを終える前に、次の記事を読むことをおすすめします。

スタートガイド
Classroom の名簿のインポートの詳細を実装する前に、API を介して取得する必要があるコースとユーザーの情報を決定する必要があります。 利用可能なコースのメタデータは リファレンス ドキュメントで確認できますが、 必要なフィールドや一般的なフィールドは次のとおりです。
| フィールド | 使用 |
|---|---|
| id | 生徒または教師を取得する API リクエストに必要 |
| name | ユーザーの使いやすさのために推奨(ウェブサイトに表示するなど) |
| ownerId | ドメイン全体でインポートしてコースのメインの教師を正しく識別する場合に必要 |
このコース情報は、上記のワークフローの courses.list
ステップで取得されます。このリクエストでは、特定のリクエスト パラメータを指定できます。このメソッドでは必須ではありませんが、推奨されるパラメータは次のとおりです。
| パラメータ | 使用 |
|---|---|
| courseState | 指定しない場合、API は 6 つの コースの状態すべてのコースを返します。現在教師が使用しているコースを取得するには、ACTIVE を指定することをおすすめします。 |
| pageSize | 自分のコースをインポートする教師の場合は、API 呼び出しのレスポンス時間を短縮するために、pageSize を小さく(10 未満)指定することをおすすめします。 |
| pageToken | ページ分割されたリクエストを使用する場合は必須です。 |
| teacherId | ドメイン管理者がコースを教えることが多いため、推奨されます。指定しない場合、リクエストはドメイン全体の教師のコースを返します。 |
| fields | API 呼び出しのレスポンス時間を短縮するために推奨されます。 |
以前に取得したコース ID を使用して、アプリケーションでそのコースの生徒と副教師のリストを取得できるようになりました。このコース ID は teachers.list と students.list に必要な唯一のクエリ パラメータですが、API 呼び出しのレスポンス時間を短縮するために、pageSize パラメータと fields パラメータを指定することも検討してください。
生徒リソースと教師リソースで使用可能なすべてのフィールドは、それぞれのドキュメントに記載されています。最もよく使用され、通常必要な 2 つのフィールドは profile フィールドにあります。profile.name と profile.emailAddress です。
| フィールド | 使用 |
|---|---|
| profile.name | ユーザーの使いやすさのために推奨(ウェブサイトに表示するなど) |
| profile.emailAddress | 生徒を一意に識別するアプリケーションに必要 |
Classroom からこれらのコースまたは名簿の詳細を取得して使用するには、お使いの アプリケーションでユーザーに 承認 をリクエストする必要があります。このワークフローを実装するには、次の 3 つのスコープが必要です。
- https://www.googleapis.com/auth/classroom.courses.readonly
- Google Classroom の コースへの読み取り専用アクセスを提供します
- https://www.googleapis.com/auth/classroom.rosters.readonly
- Google Classroom コースの 名簿(教師と生徒)への読み取り専用アクセスを提供します
- https://www.googleapis.com/auth/classroom.profile.emails
- 教師と生徒の メール プロパティへの読み取りアクセスを提供します
Pub/Sub 通知で名簿を同期する
学年が進むにつれて、生徒がコースを退会したり、コースを追加したりすると、名簿が変更されることがあります。Pub/Sub 通知 を追加すると、サードパーティ製アプリケーションを Classroom の 名簿と同期させることができます。通知を受信するには、Google Cloud Pub/Sub トピックを設定し、そのトピックを Classroom API に登録します。この登録は、指定されたフィードから指定されたトピックにデータを送信するよう Classroom にリクエストします。このフィードは、教師の Classroom の名簿と再同期するためのイベント トリガーになります。
プッシュ通知を利用するには、検証のために送信する必要のない追加のスコープが 1 つ必要です。
- https://www.googleapis.com/auth/classroom.push-notifications
- アプリがプッシュ通知アクティビティに登録できるようにします

Classroom プッシュ通知との統合方法について詳しくは、 プッシュ通知を管理するガイドをご覧ください。