Ресурс Guardian представляет пользователя, например родителя, который получает информацию о курсах и работе учащегося. Опекун, который обычно не является членом домена Класса учащегося, должен быть приглашен, используя его адрес электронной почты, чтобы стать опекуном.
Это приглашение создает ресурс GuardianInvitation с состоянием PENDING
. Затем пользователь получает электронное письмо с предложением принять приглашение. Если адрес электронной почты не связан с учетной записью Google, пользователю будет предложено создать ее, прежде чем принять приглашение.
Пока приглашение имеет состояние PENDING
, пользователь может принять приглашение, при этом создается ресурс Guardian и помечается GuardianInvitation состоянием COMPLETED
. Приглашение также может стать COMPLETED
, если срок его действия истек или если авторизованный пользователь отменяет приглашение (например, с помощью метода PatchGuardianInvitation
). Отношения Guardian также могут быть разорваны опекуном, учителем Класса или администратором с помощью пользовательского интерфейса Класса или метода DeleteGuardian
.
Кто может управлять опекунами
В следующей таблице описаны действия, которые можно выполнить в отношении опекунов, в зависимости от типа пользователя, аутентифицированного в данный момент:
Области применения
Существует три области, позволяющие управлять опекунами:
- https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly позволяет просматривать собственных Стражей пользователя.
- https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly позволяет просматривать Guardians и GuardianInvitations для учащихся, которых пользователь преподает или администрирует.
- https://www.googleapis.com/auth/classroom.guardianlinks.students позволяет просматривать и изменять Guardians и GuardianInvitations для учащихся, которых пользователь преподает или администрирует.
Общие действия
В этом разделе описаны некоторые распространенные действия опекуна, которые вы, возможно, захотите выполнить с помощью API Google Classroom.
Создать приглашение опекуна
В следующем примере показано, как создать приглашение опекуна с помощью метода 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.
Отменить приглашение опекуна
Чтобы отменить приглашение, измените состояние приглашения с PENDING
на COMPLETE
, вызвав метод userProfiles.guardianInvitations.patch()
. Обратите внимание, что на данный момент это единственный способ удалить приглашение.
Джава
Питон
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()
:
Джава
Питон
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')))
По умолчанию будут возвращены только PENDING
приглашения. Как администратор домена, вы также можете получать приглашения в состоянии COMPLETED
, указав параметр состояний.
Список активных опекунов
Если вы хотите определить, какие пользователи являются активными опекунами конкретного учащегося, вы можете использовать метод 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()