Classroom とサードパーティ製ツールの両方を活用している教師は、複数のプラットフォームにわたってコースと名簿を設定するという課題に直面します。これは、CSV アップロードを使用するか、メールアドレスを 1 つずつ入力して、手動で行うことができます。ただし、Classroom API を使用すると、サードパーティ ツールで API の最も一般的なユースケースである名簿のインポートと統合することで、教師の作業負荷を軽減できます。
名簿のインポートを使用すると、サードパーティのプラットフォームは、教師または管理者権限を使用して、コースのメタデータ、教師、生徒をコースごとに取得できます。教師は担当しているコースの詳細を取得できますが、管理者はドメイン全体のすべてのコースの詳細にアクセスできます。この柔軟性により、デベロッパーは管理者の認証情報を使用して、個々の教師レベルまたはドメイン全体で Classroom の名簿をプラットフォームにシームレスにオンボーディングできます。
名簿インポートの統合の技術的な詳細に入る前に、まずワークフローの例を確認しましょう。
教師は、サードパーティ製アプリで Classroom のコースをインポートするオプションを選択します。
サードパーティ製アプリケーションが Classroom API を介して
courses.list
メソッドを呼び出すと、教師のすべてのコースを含むレスポンス JSON が返されます。この json レスポンスから、サードパーティ製アプリケーションに教師のコースのタイトルが表示され、そこからコースを選択できるようになります。次のステップに進むために、アプリケーションはコース ID を記録する必要があります。
選択したコース ID を使用して、サードパーティ製アプリケーションが
students.list
メソッドとteachers.list
メソッドを呼び出し、教師がインポートを確認するためすべての名前をウェブサイトに表示します。サードパーティ アプリケーションは、
students.list
と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 を使用して、そのコースの生徒と副担任のリストをアプリケーションで取得できるようになりました。teachers.list
と students.list
で必須のクエリ パラメータはこのコース ID のみですが、API 呼び出しのレスポンス時間を短縮するために、同様に pageSize
パラメータと fields
パラメータを指定することも可能です。
生徒と教師のリソースで利用可能なすべてのフィールドについては、それぞれのドキュメントをご覧ください。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
- 教師と生徒の email プロパティに対する読み取りアクセス権を付与します。
Pub/Sub 通知による名簿の同期
学年度の進展に合わせて、生徒がコースを脱退または追加することで、名簿が変更されることがあります。Pub/Sub 通知を追加すると、サードパーティ アプリケーションと Classroom の名簿の同期を維持できます。通知を受け取るには、Google Cloud Pub/Sub トピックを設定し、Classroom API にトピックを登録します。この登録は、Classroom が、指定されたフィードから特定のトピックにデータを送信するリクエストです。このフィードが、教師の Classroom の名簿と再同期するためのイベント トリガーになります。
プッシュ通知を使用するには、追加のスコープが 1 つ必要です(検証のために送信する必要はありません)。
- https://www.googleapis.com/auth/classroom.push-notifications
- プッシュ通知アクティビティの登録をアプリに許可します
Classroom のプッシュ通知との統合方法について詳しくは、プッシュ通知の管理に関するガイドをご覧ください。