Zasób dla opiekuna reprezentuje użytkownika, na przykład rodzica, który otrzymuje informacje o kursach i zadaniach ucznia. Opiekun, który zazwyczaj nie jest członkiem domeny ucznia, musi zostać zaproszony przy użyciu swojego adresu e-mail.
To zaproszenie tworzy zasób opiekuna ze stanem PENDING
. Następnie użytkownik otrzymuje e-maila z prośbą o zaakceptowanie zaproszenia. Jeśli adres e-mail nie jest powiązany z kontem Google, użytkownik zostanie poproszony o utworzenie konta przed zaakceptowaniem zaproszenia.
Zaproszenie ma stan PENDING
, ale użytkownik może przyjąć zaproszenie, co spowoduje utworzenie zasobu Guardian i oznaczenie zaproszenia użytkownika Guardian stanem COMPLETED
. Zaproszenie może też zostać COMPLETED
, jeśli wygasa lub gdy upoważniony użytkownik anuluje zaproszenie (na przykład za pomocą metody PatchGuardianInvitation
). Powiązanie z opiekunem może również zostać przerwane przez opiekuna, nauczyciela Classroom lub administratora za pomocą interfejsu Classroom lub metody DeleteGuardian
.
Kto może zarządzać opiekunami
W tabeli poniżej opisano działania, które można wykonywać w odniesieniu do opiekunów w zależności od typu uwierzytelniania użytkownika:
Zakresy
Są 3 zakresy zarządzania opiekunami:
- https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly umożliwia przeglądanie własnych opiekunów użytkowników.
- https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly umożliwia wyświetlanie raportów o opiekunach i opiekunach uczniów, których użytkownik uczy lub administruje.
- https://www.googleapis.com/auth/classroom.guardianlinks.students umożliwia wyświetlanie i modyfikowanie opiekunów i zaproszeń dla opiekunów uczniów.
Typowe działania
W tej sekcji opisano niektóre typowe czynności wykonywane przez opiekunów przy użyciu interfejsu Google Classroom API.
Tworzenie zaproszenia do roli opiekuna
Poniższy przykład pokazuje, jak utworzyć zaproszenie opiekuna za pomocą 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 przypisany przez serwer identyfikator, którego można użyć do odwołania do opiekuna.
Anulowanie zaproszenia dla opiekuna
Aby anulować zaproszenie, zmień jego stan z PENDING
na COMPLETE
, wywołując metodę userProfiles.guardianInvitations.patch()
.
Obecnie jest to jedyny sposób, aby usunąć zaproszenie.
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ń do konkretnego ucznia
Możesz wyświetlić listę wszystkich zaproszeń, które zostały wysłane do określonego ucznia przy użyciu 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 zwracanych jest tylko PENDING
zaproszeń. Jako administrator domeny możesz też pobierać zaproszenia w stanie COMPLETED
, podając parametr state.
Wyświetlenie listy aktywnych opiekunów
Aby określić, którzy użytkownicy są aktywnymi opiekunami konkretnego ucznia, możesz użyć metody userProfiles.guardians.list()
. Aktywni opiekunowie to opiekunowie, którzy przyjęli zaproszenie w e-mailu.
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 ucznia. Aby to zrobić, użyj metody userProfiles.guardians.delete()
:
Java
Python
service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
guardianId='guardian@gmail.com').execute()