Verwenden Ihre Nutzer Classroom mit Google Meet? Sehen Sie sich die Apps Script-Kurzanleitung zum Ansehen der Teilnahme von Schülern/Studenten in Google Meet-Kursen an.

Erziehungsberechtigte verwalten

Eine Ressource für Erziehungsberechtigte steht für einen Nutzer, beispielsweise einen Elternteil, der Informationen über die Kurse und Aufgaben eines Schülers/Studenten erhält. Der Erziehungsberechtigte, der normalerweise kein Mitglied der Classroom-Domain des Schülers oder Studenten ist, muss mit seiner E-Mail-Adresse eingeladen werden, ein Erziehungsberechtigter zu werden.

Mit dieser Einladung wird eine Ressource vom Typ "GuardianInvitation" mit dem Status PENDING erstellt. Der Nutzer erhält dann 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 annimmt.

Während die Einladung den Status PENDING hat, kann der Nutzer die Einladung annehmen. Dadurch wird eine Guardian-Ressource erstellt und die Guardian-Einladung mit dem Status COMPLETED gekennzeichnet. Eine Einladung kann auch zu COMPLETED werden, wenn sie abläuft oder wenn ein autorisierter Nutzer die Einladung zurückzieht (z. B. mit der Methode PatchGuardianInvitation). Eine Guardian-Beziehung kann auch von einem Erziehungsberechtigten, einer Classroom-Lehrkraft oder einem Administrator über die Classroom-Benutzeroberfläche oder die DeleteGuardian-Methode unterbrochen werden.

Wer darf Erziehungsberechtigte verwalten?

In der folgenden Tabelle werden die Aktionen beschrieben, die je nach Art des authentifizierten Nutzers für Erziehungsberechtigte ausgeführt werden können:

Tabelle mit ACLs für Erziehungsberechtigte nach Nutzertyp

Ebenen

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

Häufige Aktionen

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

Einladung für Erziehungsberechtigte erstellen

Das folgende Beispiel zeigt, wie Sie eine Einladung für Erziehungsberechtigte mit der Methode userProfiles.guardianInvitations.create() 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')))

Das Ergebnis enthält eine vom Server zugewiesene Kennung, mit der auf die GuardianInvitation verwiesen werden kann.

Einladung eines Erziehungsberechtigten zurücknehmen

Das folgende Beispiel zeigt, wie Sie eine Einladung mithilfe der Methode userProfiles.guardianInvitations.patch() zurücknehmen können:

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/Studenten gesendet wurden:

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

Standardmäßig werden nur PENDING Einladungen zurückgegeben. Als Domainadministrator können Sie auch Einladungen im Status COMPLETED abrufen, indem Sie einen Parameter „states“ angeben.

Aktive Erziehungsberechtigte auflisten

Wenn Sie ermitteln möchten, welche Nutzer aktive Erziehungsberechtigte für einen bestimmten Schüler oder Studenten sind, können Sie die Methode userProfiles.guardians.list() verwenden. Aktive Erziehungsberechtigte sind Erziehungsberechtigte, die die E-Mail-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 mit der Methode userProfiles.guardians.delete() 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()