Velileri Yönetme

Veli kaynağı, öğrencinin dersleri ve çalışmaları hakkında bilgi alan bir kullanıcıyı (ör. ebeveyn) temsil eder. Genellikle öğrencinin Classroom alanının üyesi olmayan bir veli, veli olmak için e-posta adresini kullanarak davet edilmelidir.

Bu davetiye, PENDING durumuyla bir VeliDavetiye kaynağı oluşturur. Ardından, kullanıcıya daveti kabul etmesini isteyen bir e-posta gönderilir. E-posta adresi bir Google Hesabı ile ilişkili değilse kullanıcıdan daveti kabul etmeden önce bir hesap oluşturması istenir.

Davetiyenin durumu PENDING olsa da kullanıcı daveti kabul edebilir. Veli kaynağı oluşturur ve VeliDavetiyesini COMPLETED durumuyla işaretler. Süresi dolan veya yetkili bir kullanıcı, davetiyeyi iptal eden (ör. PatchGuardianInvitation yöntemini kullanarak) davetiyeler de COMPLETED olabilir. Veli ilişkisi, Classroom kullanıcı arayüzü veya DeleteGuardian yöntemi kullanılarak bir veli, Classroom öğretmeni veya yönetici tarafından kesilebilir.

Velileri yönetebilecek kullanıcılar

Aşağıdaki tabloda, şu anda kimliği doğrulanmış kullanıcının türüne göre velilerle ilgili olarak yapılabilecek işlemler açıklanmaktadır:

Kullanıcı türüne göre velilerle ilgili EKL'ler tablosu

Kapsamlar

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

Sık kullanılan işlemler

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

Veli davetiyesi oluştur

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

Java

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

Sonuç, GuardianInvite'a başvurmak için kullanılabilen, sunucu tarafından atanmış bir tanımlayıcı içerir.

Veli davetini iptal etme

Bir davetiyeyi iptal etmek için userProfiles.guardianInvitations.patch() yöntemini çağırarak PENDING olan davetiyenin durumunu değiştirin. Şu anda bir davetiyeyi kaldırmanın tek yolunun bu olduğunu unutmayın.

Java

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

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:

Java

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

Varsayılan olarak yalnızca PENDING davetiye döndürülür. Alan yöneticisi olarak, bir eyaletler parametresi sağlayarak davetiyeleri COMPLETED durumunda da alabilirsiniz.

Etkin velileri listeleyin

Belirli bir öğrenci için hangi kullanıcıların etkin veli olduğunu belirlemek istiyorsanız userProfiles.guardians.list() yöntemini kullanabilirsiniz. Etkin veliler, e-posta davetini kabul eden 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='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')))

Velileri kaldır

userProfiles.guardians.delete() yöntemini kullanarak öğrenciden veliyi de 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='student@mydomain.edu',
                                        guardianId='guardian@gmail.com').execute()