Zasoby opiekuna reprezentują użytkownika, np. rodzica, który otrzymuje informacje o zajęciach i pracach ucznia. Opiekun, który zazwyczaj nie należy do domeny Classroom ucznia, musi zostać zaproszony za pomocą adresu e-mail, aby stać się opiekunem.
To zaproszenie tworzy zasobnik GuardianInvitation ze stanem PENDING
. Użytkownik otrzyma 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 jego utworzenie przed zaakceptowaniem zaproszenia.
Gdy zaproszenie ma stan PENDING
, użytkownik może je zaakceptować, co spowoduje utworzenie zasobu opiekuna i oznaczy zaproszenie opiekuna stanem COMPLETED
. Zaproszenie może też stać się COMPLETED
, jeśli wygaśnie lub jeśli upoważniony użytkownik je anuluje (na przykład za pomocą metody PatchGuardianInvitation
). Relacja opiekuna może zostać również zerwana przez opiekuna, nauczyciela w Classroom lub administratora za pomocą interfejsu użytkownika Classroom lub metody DeleteGuardian
.
Kto może zarządzać opiekunami
W tabeli poniżej opisaliśmy czynności, które można wykonywać w przypadku opiekunów w zależności od typu uwierzytelnionego użytkownika:
Zakresy
Do zarządzania opiekunami służą 3 zakresy:
- https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly pozwala wyświetlić opiekunów użytkownika.
- https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly pozwala wyświetlić opiekunów i zaproszenia dla opiekunów uczniów, których zajęcia prowadzi lub którymi zarządza użytkownik.
- https://www.googleapis.com/auth/classroom.guardianlinks.students umożliwia wyświetlanie i modyfikowanie opiekunów oraz zaproszeń do opiekunów uczniów na zajęciach, które prowadzisz lub którymi zarządzasz.
Typowe działania
W tej sekcji opisano niektóre typowe działania, które rodzice mogą wykonywać za pomocą interfejsu Google Classroom API.
Tworzenie zaproszenia dla rodzica lub opiekuna
Ten przykład pokazuje, jak utworzyć zaproszenie dla rodzica 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óry może służyć do odwoływania się do GuardianInvitation.
Anulowanie zaproszenia opiekuna
Aby anulować zaproszenie, zmień jego stan z PENDING
na COMPLETE
, wywołując metodę userProfiles.guardianInvitations.patch()
.
Pamiętaj, że jest to obecnie jedyny sposób na usunięcie 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
Listę wszystkich zaproszeń wysłanych do konkretnego studenta możesz pobrać, korzystając z 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ż pobrać zaproszenia o stanie COMPLETED
, podając parametr states.
Lista aktywnych opiekunów
Jeśli chcesz określić, którzy użytkownicy są aktywnymi opiekunami danego ucznia, możesz użyć metody userProfiles.guardians.list()
. Aktywni opiekunowie to opiekunowie, którzy zaakceptowali 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')))
Usuwanie opiekunów
Możesz też usunąć opiekuna ucznia, korzystając z metody userProfiles.guardians.delete()
:
Java
Python
service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
guardianId='guardian@gmail.com').execute()