Erziehungsberechtigte erstellen und verwalten

Eine Guardian Ressource stellt einen Nutzer dar, z. B. einen Elternteil, der Informationen zu den Kursen und Kursarbeiten eines Schülers oder Studenten erhält. Der Erziehungsberechtigte, der in der Regel kein Mitglied der Classroom-Domain des Schülers oder Studenten ist, muss über seine E‑Mail-Adresse eingeladen werden.

Einladungen werden durch die GuardianInvitation Ressource dargestellt. Der eingeladene Nutzer erhält eine E‑Mail mit der Aufforderung, die Einladung anzunehmen. Wenn die E‑Mail-Adresse nicht mit einem Google-Konto verknüpft ist, wird der Nutzer aufgefordert, ein Konto zu erstellen, bevor er die Einladung annehmen kann.

Wenn der Nutzer eingeladen wurde und bevor er die Einladung annimmt, hat die GuardianInvitation den Status PENDING. Sobald der Nutzer die Einladung annimmt, wird die GuardianInvitation als COMPLETED markiert und eine Guardian Ressource wird erstellt.

Der Status einer GuardianInvitation kann auch in COMPLETED geändert werden, wenn sie abläuft oder wenn ein autorisierter Nutzer die Einladung zurücknimmt (z. B. mit der Methode PatchGuardianInvitation). Eine Beziehung zu einem Erziehungsberechtigten kann auch von einem Erziehungsberechtigten, einer Classroom-Lehrkraft oder einem Administrator über die Classroom-Webanwendung oder die Methode DeleteGuardian beendet werden.

Wer kann Erziehungsberechtigte verwalten?

In der folgenden Tabelle sind die Aktionen beschrieben, die in Bezug auf Erziehungsberechtigte ausgeführt werden können, je nach Typ des authentifizierten Nutzers:

Tabelle der erziehungsberechtigtenbezogenen ACLs nach Nutzertyp

Bereiche

Es gibt drei Bereiche, mit denen Sie Erziehungsberechtigte verwalten können:

  • https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly: Die eigenen Erziehungsberechtigten eines Nutzers ansehen.
  • https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly: Erziehungsberechtigte und Einladungen für Erziehungsberechtigte von Schülern oder Studenten ansehen, die der Nutzer unterrichtet oder verwaltet.
  • https://www.googleapis.com/auth/classroom.guardianlinks.students: Erziehungsberechtigte und Einladungen für Erziehungsberechtigte von Schülern oder Studenten ansehen und verwalten, die der Nutzer unterrichtet oder verwaltet.

Häufige Aktionen

In diesem Abschnitt werden einige der häufigsten Aktionen für Erziehungsberechtigte beschrieben, die Sie mit der Google Classroom API ausführen können.

Einladung für Erziehungsberechtigte erstellen

Im folgenden Beispiel wird gezeigt, wie Sie mit der userProfiles.guardianInvitations.create() Methode eine Einladung für Erziehungsberechtigte erstellen:

Java

classroom/snippets/src/main/java/CreateGuardianInvitation.java
GuardianInvitation guardianInvitation = null;

/* Create a GuardianInvitation object with state set to PENDING. See
https://developers.google.com/classroom/reference/rest/v1/userProfiles.guardianInvitations#guardianinvitationstate
for other possible states of guardian invitations. */
GuardianInvitation content =
    new GuardianInvitation()
        .setStudentId(studentId)
        .setInvitedEmailAddress(guardianEmail)
        .setState("PENDING");
try {
  guardianInvitation =
      service.userProfiles().guardianInvitations().create(studentId, content).execute();

  System.out.printf("Invitation created: %s\n", guardianInvitation.getInvitationId());
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("There is no record of studentId: %s", studentId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return guardianInvitation;

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')))

Die Antwort enthält eine vom Server zugewiesene ID, mit der auf die GuardianInvitation verwiesen werden kann.

Einladung für Erziehungsberechtigte zurücknehmen

Wenn Sie eine Einladung zurücknehmen möchten, ändern Sie den Status der Einladung von PENDING in COMPLETE indem Sie die userProfiles.guardianInvitations.patch() Methode aufrufen. Dies ist die einzige Möglichkeit, eine Einladung zu entfernen.

Java

classroom/snippets/src/main/java/CancelGuardianInvitation.java
GuardianInvitation guardianInvitation = null;

try {
  /* Change the state of the GuardianInvitation from PENDING to COMPLETE. See
  https://developers.google.com/classroom/reference/rest/v1/userProfiles.guardianInvitations#guardianinvitationstate
  for other possible states of guardian invitations. */
  GuardianInvitation content =
      service.userProfiles().guardianInvitations().get(studentId, invitationId).execute();
  content.setState("COMPLETE");

  guardianInvitation =
      service
          .userProfiles()
          .guardianInvitations()
          .patch(studentId, invitationId, content)
          .set("updateMask", "state")
          .execute();

  System.out.printf(
      "Invitation (%s) state set to %s\n.",
      guardianInvitation.getInvitationId(), guardianInvitation.getState());
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf(
        "There is no record of studentId (%s) or invitationId (%s).", studentId, invitationId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return guardianInvitation;

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()

Einladungen für einen bestimmten Schüler oder Studenten auflisten

Mit der Methode userProfiles.guardianInvitations.list() können Sie eine Liste aller Einladungen abrufen, die für einen bestimmten Schüler oder Studenten gesendet wurden. Standardmäßig werden nur PENDING-Einladungen zurückgegeben. Ein Domainadministrator kann auch Einladungen mit dem Status COMPLETED abrufen, indem er einen states-Parameter angibt.

Java

classroom/snippets/src/main/java/ListGuardianInvitationsByStudent.java
List<GuardianInvitation> guardianInvitations = new ArrayList<>();
String pageToken = null;

try {
  do {
    ListGuardianInvitationsResponse response =
        service
            .userProfiles()
            .guardianInvitations()
            .list(studentId)
            .setPageToken(pageToken)
            .execute();

    /* Ensure that the response is not null before retrieving data from it to avoid errors. */
    if (response.getGuardianInvitations() != null) {
      guardianInvitations.addAll(response.getGuardianInvitations());
      pageToken = response.getNextPageToken();
    }
  } while (pageToken != null);

  if (guardianInvitations.isEmpty()) {
    System.out.println("No guardian invitations found.");
  } else {
    for (GuardianInvitation invitation : guardianInvitations) {
      System.out.printf("Guardian invitation id: %s\n", invitation.getInvitationId());
    }
  }
} catch (GoogleJsonResponseException e) {
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("There is no record of studentId (%s).", studentId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return guardianInvitations;

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')))

Aktive Erziehungsberechtigte auflisten

Mit der Methode userProfiles.guardians.list() können Sie ermitteln, welche Nutzer aktive Erziehungsberechtigte für einen bestimmten Schüler oder Studenten sind. Aktive Erziehungsberechtigte sind Erziehungsberechtigte, die die Einladung angenommen haben.

Java

classroom/snippets/src/main/java/ListGuardians.java
List<Guardian> guardians = new ArrayList<>();
String pageToken = null;

try {
  do {
    ListGuardiansResponse response =
        service.userProfiles().guardians().list(studentId).setPageToken(pageToken).execute();

    /* Ensure that the response is not null before retrieving data from it to avoid errors. */
    if (response.getGuardians() != null) {
      guardians.addAll(response.getGuardians());
      pageToken = response.getNextPageToken();
    }
  } while (pageToken != null);

  if (guardians.isEmpty()) {
    System.out.println("No guardians found.");
  } else {
    for (Guardian guardian : guardians) {
      System.out.printf(
          "Guardian name: %s, guardian id: %s, guardian email: %s\n",
          guardian.getGuardianProfile().getName().getFullName(),
          guardian.getGuardianId(),
          guardian.getInvitedEmailAddress());
    }
  }

} catch (GoogleJsonResponseException e) {
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("There is no record of studentId (%s).", studentId);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return guardians;

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')))

Erziehungsberechtigte entfernen

Mit der Methode userProfiles.guardians.delete() können Sie auch einen Erziehungsberechtigten von einem Schüler oder Studenten entfernen:

Java

classroom/snippets/src/main/java/DeleteGuardian.java
try {
  service.userProfiles().guardians().delete(studentId, guardianId).execute();
  System.out.printf("The guardian with id %s was deleted.\n", guardianId);
} catch (GoogleJsonResponseException e) {
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf("There is no record of guardianId (%s).", guardianId);
  }
}

Python

service.userProfiles().guardians().delete(studentId='student@mydomain.edu',
                                        guardianId='guardian@gmail.com').execute()