Veli oluşturma ve yönetme

Guardian Kaynak, öğrencinin kursları ve dersleriyle ilgili bilgileri alan bir kullanıcıyı (ör. ebeveyn) temsil eder. Genellikle öğrencinin Classroom alanının üyesi olmayan veli, e-posta adresi kullanılarak davet edilmelidir.

Davetler, GuardianInvitation kaynağı ile gösterilir. Davet edilen kullanıcıya, daveti kabul etmesini isteyen bir e-posta gönderilir. E-posta adresi bir Google Hesabı ile ilişkilendirilmemişse kullanıcıdan daveti kabul etmeden önce hesap oluşturması istenir.

Kullanıcı davet edildiğinde ve daveti kabul etmeden önce GuardianInvitation durumu PENDING olur. Kullanıcı daveti kabul ettikten sonra GuardianInvitation, COMPLETED olarak işaretlenir ve Guardian kaynağı oluşturulur.

Bir GuardianInvitation durumu, geçerliliği sona erdiğinde veya yetkili bir kullanıcı daveti iptal ettiğinde (örneğin, PatchGuardianInvitation yöntemini kullanarak) COMPLETED olarak da değiştirilebilir. Velilik ilişkisi, Classroom web uygulaması veya DeleteGuardian yöntemi kullanılarak veli, Classroom öğretmeni ya da yönetici tarafından da kaldırılabilir.

Velileri yönetebilenler

Aşağıdaki tabloda, kimliği doğrulanan kullanıcının türüne göre velilerle ilgili olarak gerçekleştirilebilecek işlemler açıklanmaktadır:

Kullanıcı türüne göre veliyle ilgili erişim kontrol listeleri tablosu

Kapsamlar

Velileri yönetmenize olanak tanıyan üç kapsam vardır:

  • https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly: Kullanıcının kendi velilerini görüntüleme
  • https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly: Kullanıcının ders verdiği veya yönettiği öğrencilerin velilerini ve veli davetlerini görüntüleme.
  • https://www.googleapis.com/auth/classroom.guardianlinks.students: Kullanıcının ders verdiği veya yönettiği öğrencilerin velilerini ve veli davetlerini görüntüleyip yönetebilir.

Sık kullanılan işlemler

Bu bölümde, Google Classroom API'yi kullanarak gerçekleştirmek isteyebileceğiniz bazı yaygın veli işlemleri açıklanmaktadır.

Velinin davetini oluşturma

Aşağıdaki örnekte, userProfiles.guardianInvitations.create() yöntemini kullanarak nasıl veli daveti oluşturabileceğiniz gösterilmektedir:

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': '[email protected]',
}
guardianInvitation = service.userProfiles().guardianInvitations().create(
                      studentId='[email protected]',
                          body=guardianInvitation).execute()
print("Invitation created with id: {0}".format(guardianInvitation.get('invitationId')))

Yanıtta, GuardianInvitation öğesine atıfta bulunmak için kullanılabilecek sunucu tarafından atanmış bir tanımlayıcı yer alıyor.

Veli davetini iptal etme

Bir davetiye iptal etmek için userProfiles.guardianInvitations.patch() yöntemini çağırarak davetiyenin durumunu PENDING'dan COMPLETE'a değiştirin. Davetiyeleri kaldırmanın tek yolu budur.

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='[email protected]',
  invitationId=1234, # Replace with the invitation ID of the invitation you want to cancel
  updateMask='state',
  body=guardianInvitation).execute()

Belirli bir öğrenci için davetiyeleri listeleme

userProfiles.guardianInvitations.list() yöntemini kullanarak belirli bir öğrenci için gönderilen tüm davetiyelerin listesini alabilirsiniz. Varsayılan olarak yalnızca PENDING davetiye döndürülür. Bir alan adı yöneticisi, COMPLETED parametresi sağlayarak states durumundaki davetiyeleri de alabilir.

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='[email protected]').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')))

Etkin velileri listeleme

Belirli bir öğrencinin etkin velilerinin kimler olduğunu belirlemek için userProfiles.guardians.list() yöntemini kullanın. Etkin veliler, daveti kabul etmiş olan velilerdir.

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='[email protected]').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')))

Velileri kaldırma

Ayrıca, userProfiles.guardians.delete() yöntemini kullanarak bir öğrencinin velisini kaldırabilirsiniz:

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='[email protected]',
                                        guardianId='[email protected]').execute()