อ่านรายชื่อติดต่อและโปรไฟล์ของโดเมน

หลังจากทำตามขั้นตอนในเตรียมพร้อมใช้งาน People API แล้ว คุณก็พร้อมที่จะอ่านรายชื่อติดต่อและโปรไฟล์ในไดเรกทอรี

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีส่งคําของ่ายๆ 2-3 รายการ ดูรายการวิธีการทั้งหมดได้ในเอกสารอ้างอิง

แสดงรายชื่อบุคคลในไดเรกทอรี

หากต้องการดูรายชื่อติดต่อและโปรไฟล์ในไดเรกทอรีโดเมนของผู้ใช้ ให้ใช้รหัสต่อไปนี้

โปรโตคอล

GET /v1/people:listDirectoryPeople?sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com

Java

List<String> sources = new ArrayList<>();
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT");
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE");

ListDirectoryPeopleResponse response = peopleService.people().listDirectoryPeople()
    .setSources(sources)
    .setReadMask("metadata,names,emailAddresses")
    .execute();

List<Person> people = response.getPeople();

แสดงรายชื่อบุคคลในไดเรกทอรีที่มีการเปลี่ยนแปลง

Java

// Initial request
List<String> sources = new ArrayList<>();
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT");
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE");

ListDirectoryPeopleResponse fullSyncResponse = peopleService.people().listDirectoryPeople()
    .setSources(sources)
    .setReadMask("metadata,names,emailAddresses")
    .setRequestSyncToken(true)
    .execute();
// Fetch all the pages
while (fullSyncResponse.getNextPageToken() != null) {
  fullSyncResponse = peopleService.people().listDirectoryPeople()
      .setSources(sources)
      .setReadMask("metadata,names,emailAddresses")
      .setRequestSyncToken(true)
      .setPageToken(fullSyncResponse.getNextPageToken())
      .execute();
}

// Some time passes

// Fetch incremental changes using the sync token returned in the last fullSyncResponse.
try {
  ListDirectoryPeopleResponse incrementalSyncResponse = peopleService.people().listDirectoryPeople()
      .setSources(sources)
      .setReadMask("metadata,names,emailAddresses")
      .setSyncToken(fullSyncResponse.getNextSyncToken())
      .execute();
  for (Person person : incrementalSyncResponse.getDirectoryPeople()) {
    handlePerson(person);
  }
  
  // Fetch all the pages
  while (incrementalSyncResponse.getNextPageToken() != null) {
    incrementalSyncResponse = peopleService.people().listDirectoryPeople
        .setSources(sources)
        .setReadMask("metadata,names,emailAddresses")
        .setSyncToken(fullSyncResponse.getNextSyncToken())
        .setPageToken(incrementalSyncResponse.getNextPageToken())
        .execute();
    for (Person person : incrementalSyncResponse.getDirectoryPeople()) {
      handlePerson(person);
    }
  }
} catch (GoogleJsonResponseException e) {
  if (e.getStatusCode() == 410) {
    // Sync token expired. Make full sync request.
  }
}

void handlePerson(Person person) {
  if (person.getMetadata().getDeleted()) {
    // Handle deleted person
  } else {
    // Handle changed person
  }
}

ดูรายละเอียดเพิ่มเติมเกี่ยวกับลักษณะการซิงค์ได้ที่ ListDirectory

ค้นหาบุคคลในไดเรกทอรี

หากต้องการดูรายชื่อรายชื่อติดต่อและโปรไฟล์ในไดเรกทอรีโดเมนของผู้ใช้ที่ตรงกับคำค้นหานำหน้า ให้ใช้รหัสต่อไปนี้

โปรโตคอล

POST /v1/people:searchDirectoryPeople?query=John&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com

Java

List sources = new ArrayList<>();
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT");
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE");

SearchDirectoryPeopleResponse response = peopleService.people().searchDirectoryPeople()
    .setQuery("John")
    .setSources(sources)
    .setReadMask("metadata,names,emailAddresses")
    .execute();

List<Person> people = response.getPeople();