Guardian
資源代表使用者 (例如家長),他們會收到學生的課程和課程作業相關資訊。監護人通常不是學生的 Classroom 網域成員,因此必須使用電子郵件地址邀請。
邀請會以 GuardianInvitation
資源表示。受邀使用者會收到提示接受邀請的電子郵件。如果電子郵件地址未連結至 Google 帳戶,系統會提示使用者先建立帳戶,再接受邀請。
在使用者收到邀請,但尚未接受邀請之前,GuardianInvitation
的狀態為 PENDING
。使用者接受邀請後,GuardianInvitation
會標示為 COMPLETED
,並建立 Guardian
資源。
如果 GuardianInvitation
狀態到期,或是授權使用者取消邀請 (例如使用 PatchGuardianInvitation
方法),系統也會將其變更為 COMPLETED
。監護人、Classroom 老師或管理員也可以使用 Classroom 網頁應用程式或 DeleteGuardian
方法,中斷監護人關係。
誰可以管理監護人
下表說明可針對監護人執行的操作,並依據驗證的使用者類型而定:
範圍
您可以透過三種權限管理監護人:
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()
方法建立監護人邀請:
Java
Python
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')))
回應中會包含伺服器指派的 ID,可用於參照 GuardianInvitation
。
取消監護人邀請
如要取消邀請,請呼叫 userProfiles.guardianInvitations.patch()
方法,將邀請狀態從 PENDING
變更為 COMPLETE
。這是移除邀請的唯一方法。
Java
Python
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
狀態中的邀請。
Java
Python
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()
方法。活躍監護人是指已接受邀請的監護人。
Java
Python
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()
方法,從學生中移除監護人:
Java
Python
service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
guardianId='guardian@gmail.com').execute()