Guardian
リソースは、生徒のコースと課題に関する情報を受け取るユーザー(保護者など)を表します。保護者は通常、生徒の Classroom ドメインのメンバーではないため、メールアドレスを使用して招待する必要があります。
招待は GuardianInvitation
リソースで表されます。招待されたユーザーには、招待を承諾するよう求めるメールが届きます。メールアドレスが Google アカウントに関連付けられていない場合は、招待を承諾する前にアカウントを作成するよう求められます。
ユーザーが招待されてから招待を承諾するまでの間、GuardianInvitation
の状態は PENDING
です。ユーザーが招待を承諾すると、GuardianInvitation
は COMPLETED
としてマークされ、Guardian
リソースが作成されます。
GuardianInvitation
の状態は、有効期限が切れた場合や、承認済みユーザーが招待をキャンセルした場合(PatchGuardianInvitation
メソッドを使用するなど)に COMPLETED
に変更されることもあります。保護者の関係は、保護者、Classroom 教師、管理者が Classroom ウェブ アプリケーションまたは DeleteGuardian
メソッドを使用して解除することもできます。
保護者を管理できるユーザー
次の表に、認証されたユーザーのタイプに応じて、保護者に対して実行できるアクションを示します。
スコープ
保護者を管理できるスコープは 3 つあります。
https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly
: ユーザー自身の保護者を表示します。https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly
: ユーザーが指導または管理している生徒の保護者と保護者招待状を表示します。https://www.googleapis.com/auth/classroom.guardianlinks.students
: ユーザーが指導または管理している生徒の保護者と保護者の招待状を表示、管理します。
一般的な操作
このセクションでは、Google Classroom API を使用して実行する一般的な保護者向けアクションについて説明します。
保護者への招待状を作成する
次の例は、userProfiles.guardianInvitations.create()
メソッドを使用して保護者招待状を作成する方法を示しています。
guardianInvitation = {
'invitedEmailAddress': 'guardian@gmail.com',
}
guardianInvitation = service.userProfiles().guardianInvitations().create(
studentId='student@mydomain.edu',
body=guardianInvitation).execute()
print("Invitation created with id: {0}".format(guardianInvitation.get('invitationId')))
レスポンスには、GuardianInvitation
を参照するために使用できるサーバー割り当て ID が含まれます。
保護者の招待をキャンセルする
招待をキャンセルするには、userProfiles.guardianInvitations.patch()
メソッドを呼び出して、招待の状態を PENDING
から COMPLETE
に変更します。招待を削除する方法はこれが唯一の方法です。
guardian_invite = {
'state': 'COMPLETE'
}
guardianInvitation = service.userProfiles().guardianInvitations().patch(
studentId='student@mydomain.edu',
invitationId=1234, # Replace with the invitation ID of the invitation you want to cancel
updateMask='state',
body=guardianInvitation).execute()
特定の生徒の招待状を一覧表示する
userProfiles.guardianInvitations.list()
メソッドを使用して、特定の生徒に送信されたすべての招待状のリストを取得できます。デフォルトでは、PENDING
招待のみが返されます。ドメイン管理者は、states
パラメータを指定して、COMPLETED
状態の招待状を取得することもできます。
guardian_invites = []
page_token = None
while True:
response = service.userProfiles().guardianInvitations().list(
studentId='student@mydomain.edu').execute()
guardian_invites.extend(response.get('guardian_invites', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
if not courses:
print('No guardians invited for this {0}.'.format(response.get('studentId')))
else:
print('Guardian Invite:')
for guardian in guardian_invites:
print('An invite was sent to '.format(guardian.get('id'),
guardian.get('guardianId')))
アクティブな保護者を一覧表示する
特定の生徒のアクティブな保護者を特定するには、userProfiles.guardians.list()
メソッドを使用します。アクティブな保護者は、招待を承諾した保護者です。
guardian_invites = []
page_token = None
while True:
response = service.userProfiles().guardians().list(studentId='student@mydomain.edu').execute()
guardian_invites.extend(response.get('guardian_invites', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
if not courses:
print('No guardians invited for this {0}.'.format(response.get('studentId')))
else:
print('Guardian Invite:')
for guardian in guardian_invites:
print('An invite was sent to '.format(guardian.get('id'),
guardian.get('guardianId')))
保護者を削除
userProfiles.guardians.delete()
メソッドを使用して、生徒から保護者を削除することもできます。
service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
guardianId='guardian@gmail.com').execute()