Erziehungsberechtigte erstellen und verwalten

Eine Guardian-Ressource steht für einen Nutzer, z. B. einen Elternteil, der Informationen zu den Kursen und den Kursleistungen 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 die Einladung noch nicht angenommen hat, hat die GuardianInvitation den Status PENDING. Sobald der Nutzer die Einladung akzeptiert hat, wird die GuardianInvitation als COMPLETED gekennzeichnet und eine Guardian-Ressource wird erstellt.

Ein Status von GuardianInvitation kann auch in COMPLETED geändert werden, wenn er abläuft oder ein autorisierter Nutzer die Einladung storniert (z. B. mit der Methode PatchGuardianInvitation). Erziehungsberechtigte, Classroom-Lehrkräfte oder Administratoren können die Beziehung zu einem Kind auch über die Classroom-Webanwendung oder die DeleteGuardian-Methode aufheben.

Wer darf Erziehungsberechtigte verwalten?

In der folgenden Tabelle werden die Aktionen beschrieben, die je nach Nutzertyp ausgeführt werden können:

Tabelle der ACLs für Erziehungsberechtigte nach Nutzertyp

Ebenen

Es gibt drei Bereiche, in 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 an Erziehungsberechtigte für Schüler und Studenten ansehen, die der Nutzer unterrichtet oder verwaltet.
  • https://www.googleapis.com/auth/classroom.guardianlinks.students: Erziehungsberechtigte und Einladungen an Erziehungsberechtigte für Schüler und Studenten ansehen und verwalten, die der Nutzer unterrichtet oder verwaltet.

Häufige Aktionen

In diesem Abschnitt werden einige der gängigen Aktionen von Erziehungsberechtigten beschrieben, die Sie mit der Google Classroom API ausführen können.

Einladung für Erziehungsberechtigten erstellen

Das folgende Beispiel zeigt, wie Sie mit der Methode userProfiles.guardianInvitations.create() eine Einladung für einen Erziehungsberechtigten 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 Kennung, mit der sich auf die GuardianInvitation verweisen lässt.

Einladung eines Erziehungsberechtigten zurücknehmen

Wenn Sie eine Einladung stornieren möchten, ändern Sie den Status der Einladung von PENDING in COMPLETE, indem Sie die Methode userProfiles.guardianInvitations.patch() aufrufen. Das 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/Studenten auflisten

Mit der Methode userProfiles.guardianInvitations.list() können Sie eine Liste aller Einladungen abrufen, die an einen bestimmten Schüler oder Studenten gesendet wurden. Standardmäßig werden nur PENDING Einladungen zurückgegeben. Domainadministratoren können auch Einladungen im Status COMPLETED abrufen, indem sie einen states-Parameter angeben.

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 die Erziehungsberechtigten eines bestimmten Schülers 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

Sie können einen Erziehungsberechtigten auch mit der Methode userProfiles.guardians.delete() 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()