Velileri Yönetme

Veli kaynağı, öğrencinin kursları ve çalışmaları hakkında bilgi alan bir kullanıcıyı (ör. ebeveyn) temsil eder. Genellikle öğrencinin Classroom alanının üyesi olmayan velinin, veli olabilmesi için e-posta adresi kullanılarak davet edilmesi gerekir.

Bu davetiye, PENDING durumuna sahip bir Veli Daveti kaynağı oluşturur. Kullanıcı, daveti kabul etmesinin istendiği bir e-posta alır. E-posta adresi bir Google hesabıyla ilişkili değilse daveti kabul etmeden önce kullanıcıdan bir hesap oluşturması istenir.

Davetiyenin durumu PENDING olsa da kullanıcı davetiyeyi kabul edebilir. Bu da bir Veli kaynağı oluşturur ve Veli Daveti'ni COMPLETED durumuyla işaretler. Bir davetiyenin süresi dolarsa veya yetkili bir kullanıcı davetiyeyi iptal ederse (örneğin, PatchGuardianInvitation yöntemini kullanarak) da COMPLETED haline gelebilir. Ayrıca veli ilişkisi; veli, Classroom öğretmeni veya yönetici tarafından Classroom kullanıcı arayüzü veya DeleteGuardian yöntemi kullanılarak da bozulabilir.

Velileri yönetebilen kullanıcılar

Aşağıdaki tabloda, geçerli olarak kimliği doğrulanmış 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 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şturma

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

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

Veli davetiyesini iptal etme

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

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

Belirli bir öğrenci için davetiyeleri listeleme

userProfiles.guardianInvitations.list() yöntemini kullanarak belirli bir öğrenci için gönderilen tüm davetiyelerin listesini görebilirsiniz:

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

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

Etkin velileri listele

Belirli bir öğrencinin etkin velisi olan kullanıcıları belirlemek istiyorsanız userProfiles.guardians.list() yöntemini kullanabilirsiniz. Aktif 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

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='student@mydomain.edu',
                                        guardianId='guardian@gmail.com').execute()