Ресурс Guardian представляет собой пользователя, например, родителя, который получает информацию о курсах и учебных работах ученика. Опекун, который, как правило, не является членом домена Classroom ученика, должен быть приглашен с помощью своего адреса электронной почты.
Приглашения представлены ресурсом GuardianInvitation . Приглашенный пользователь получает электронное письмо с просьбой принять приглашение. Если адрес электронной почты не связан с учетной записью Google, пользователю предлагается создать ее перед принятием приглашения.
Когда пользователь получает приглашение, но до его принятия, объект GuardianInvitation находится в состоянии PENDING ). После принятия приглашения пользователем объект GuardianInvitation помечается как COMPLETED , и создается ресурс Guardian .
Состояние GuardianInvitation также может измениться на COMPLETED , если оно истекло или если авторизованный пользователь отменил приглашение (например, с помощью метода PatchGuardianInvitation ). Отношения опекуна также могут быть разорваны опекуном, преподавателем 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: просмотр и управление опекунами и приглашениями опекунов для учащихся, которых пользователь обучает или администрирует.
Общие действия
В этом разделе описаны некоторые распространенные действия, которые могут потребоваться от опекунов при использовании API Google Classroom.
Создать приглашение для опекуна
В следующем примере показано, как создать приглашение для опекуна с помощью метода 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')))
В ответе содержится присвоенный сервером идентификатор, который можно использовать для ссылки на GuardianInvitation .
Отменить приглашение опекуна
Чтобы отменить приглашение, измените его статус с PENDING на COMPLETE , вызвав метод userProfiles.guardianInvitations.patch() . Это единственный способ удалить приглашение.
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 . Администратор домена также может получить приглашения в состоянии COMPLETED , указав параметр states .
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()