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 Guardian-Ressource repräsentiert einen Nutzer, beispielsweise einen Elternteil, der Informationen zu den Kursen und Aufgaben eines Schülers erhält. Der Erziehungsberechtigte, der normalerweise kein Mitglied der Classroom-Domain des Schülers ist, muss mit seiner E-Mail-Adresse eingeladen werden, Erziehungsberechtigte zu werden.

Mit dieser Einladung wird eine GuardianInvite resource mit dem Status PENDING erstellt. Der Nutzer erhält dann eine E-Mail mit der Aufforderung, die Einladung anzunehmen. Falls die E-Mail-Adresse nicht mit einem Google-Konto verknüpft ist, wird der Nutzer vor der Annahme der Einladung aufgefordert, eines zu erstellen.

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 Begleiterbeziehung kann auch von einem Erziehungsberechtigten, einer Classroom-Lehrkraft oder einem Administrator über die Classroom-Benutzeroberfläche oder die Methode DeleteGuardian aufgehoben werden.

Wer darf Erziehungsberechtigte verwalten?

In der folgenden Tabelle werden die Aktionen beschrieben, die für Erziehungsberechtigte je nach Art des derzeit authentifizierten Nutzers auszuführen sind:

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 gängige Aktionen für Erziehungsberechtigte beschrieben, die Sie möglicherweise mit der Google Classroom API ausführen können.

Erziehungsberechtigte Einladung erstellen

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

Java

Kursraum/Snippets/src/main/java/CreateGuardianInvite.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 Guardian-Einladung verwiesen werden kann.

Einladung eines Erziehungsberechtigten zurücknehmen

Wenn Sie eine Einladung zurücknehmen möchten, ändern Sie den Status der Einladung von PENDING zu COMPLETE. Rufen Sie dazu die Methode userProfiles.guardianInvitations.patch() auf. Beachten Sie, dass dies derzeit die einzige Möglichkeit ist, eine Einladung zu entfernen.

Java

Kursraum/Snippets/src/main/java/CancelGuardianInvite.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:

Java

Kursraum/Snippets/src/main/java/ListGuardianInvitesByStudent.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 mit dem Status COMPLETED abrufen, indem Sie einen Parameter für den Bundesstaat angeben.

Aktive Erziehungsberechtigte auflisten

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

Java

Kursraum/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 mithilfe der Methode userProfiles.guardians.delete() auch von einem Schüler oder Studenten entfernen:

Java

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