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 | 指定しない場合は、6 つの コースの状態のすべてのコースが返されます。教師が現在使用しているコースを取得するには、ACTIVE を指定することをおすすめします。 |
pageSize | 独自のコースを取り込む教師は、API 呼び出しのレスポンス時間を短縮するために、小さい(10 未満)pageSize を指定することをおすすめします。 |
pageToken | ページングされたリクエストを使用する場合は必須です。 |
teacherId | ドメイン管理者はコースを教えることが多いため、推奨されます。指定しない場合は、ドメイン全体の教師向けコースが返されます。 |
fields | API 呼び出しのレスポンス時間を短縮することをおすすめします。 |
前述で取得したコース ID を使用して、そのコースまたはコースの生徒と副担任のリストをアプリケーションが取得できるようになりました。このコース ID は、teachers.list
と students.list
で必要な唯一のクエリ パラメータですが、同様に pageSize
パラメータと fields
パラメータを指定して、API 呼び出しのレスポンス時間を短縮することを検討してください。
生徒向けリソースと教師向けリソースで使用可能なすべてのフィールドは、それぞれのドキュメントで確認できます。profile
フィールドには、最も一般的に使用され、通常は必須となる 2 つのフィールド(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 名簿との再同期イベント トリガーになります。
プッシュ通知を使用するには、追加のスコープが必要です。このスコープは、確認のために送信する必要はありません。
- https://www.googleapis.com/auth/classroom.push-notifications
- アプリが任意のプッシュ通知アクティビティに登録できるようにします
Classroom プッシュ通知と統合する方法について詳しくは、プッシュ通知を管理するガイドをご覧ください。