Zasób dla opiekuna reprezentuje użytkownika, np. rodzica, który otrzymuje informacje o zajęciach i pracy ucznia. Opiekun, który zwykle nie jest członkiem domeny Classroom ucznia, musi otrzymać zaproszenie przy użyciu adresu e-mail.
To zaproszenie powoduje utworzenie zasobu GuardianInvitation o stanie PENDING
. Następnie użytkownik otrzyma e-maila z prośbą o zaakceptowanie zaproszenia. Jeśli adres e-mail nie jest powiązany z kontem Google, przed zaakceptowaniem zaproszenia użytkownik zostanie poproszony o utworzenie takiego konta.
Choć stan zaproszenia to PENDING
, użytkownik może je zaakceptować. Spowoduje to utworzenie zasobu opiekuna i oznaczenie zaproszenia jako „opiekun” stanem COMPLETED
. Zaproszenie może też stać się COMPLETED
, jeśli wygaśnie lub jeśli autoryzowany użytkownik je anuluje (na przykład przy użyciu metody PatchGuardianInvitation
). Relację z opiekunem może zerwać również opiekun, nauczyciel w Classroom lub administrator przy użyciu interfejsu Classroom lub metody DeleteGuardian
.
Kto może zarządzać opiekunami
W tabeli poniżej opisano czynności, które można wykonywać w odniesieniu do opiekunów według typu obecnie uwierzytelnionego użytkownika:
Zakresy
Istnieją 3 zakresy umożliwiające zarządzanie opiekunami:
- https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly umożliwia wyświetlenie opiekunów użytkownika.
- https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly umożliwia wyświetlanie zaproszeń dla opiekunów i opiekunów uczniów, których uczy lub administruje.
- https://www.googleapis.com/auth/classroom.guardianlinks.students umożliwia wyświetlanie i modyfikowanie zaproszeń opiekunów i opiekunów uczniów, których uczy lub administruje dany użytkownik.
Typowe działania
W tej sekcji opisujemy kilka typowych czynności dla opiekunów, które można wykonać przy użyciu interfejsu Google Classroom API.
Tworzenie zaproszenia dla opiekuna
Poniższy przykład pokazuje, jak utworzyć zaproszenie dla opiekuna przy użyciu metody 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')))
Wynik zawiera identyfikator przypisany przez serwer, który można wykorzystać na potrzeby zaproszenia do opiekuna.
Anulowanie zaproszenia opiekuna
Aby anulować zaproszenie, zmień jego stan z PENDING
na COMPLETE
, wywołując metodę userProfiles.guardianInvitations.patch()
.
Obecnie jest to jedyny sposób usunięcia zaproszenia.
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()
Wyświetlanie listy zaproszeń dla konkretnego ucznia
Aby wyświetlić listę wszystkich zaproszeń wysłanych do określonego ucznia, użyj metody userProfiles.guardianInvitations.list()
:
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')))
Domyślnie zwracane są tylko zaproszenia (PENDING
). Jako administrator domeny możesz też pobierać zaproszenia w stanie COMPLETED
przez podanie parametru stanów.
Wyświetl listę aktywnych opiekunów
Jeśli chcesz określić, którzy użytkownicy są aktywnymi opiekunami określonego ucznia, możesz użyć metody userProfiles.guardians.list()
. Aktywni opiekunowie to opiekunowie, którzy przyjęli e-maila z zaproszeniem.
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')))
Usuń opiekunów
Możesz też usunąć opiekuna z ucznia, korzystając z metody userProfiles.guardians.delete()
:
Java
Python
service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
guardianId='guardian@gmail.com').execute()