หลังจากทำตามขั้นตอนในเตรียมพร้อมใช้งาน 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
Listsources = 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();