Read Domain Contacts and Profiles

After you've completed the steps in Get Ready to Use the People API , you are ready to read directory contacts and profiles.

The following code samples demonstrate how to send a few simple requests. For a full list of methods, see the reference documentation .

List the directory people

To get a list of contacts and profiles in the user's domain directory , use the following code:

Protocol

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

List the directory people that have changed

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 
  
 } 
 } 

More details about sync behavior at ListDirectory .

Search the directory people

To get a list of contacts and profiles in the user's domain directory matching a prefix query , use the following code:

Protocol

 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 
 (); 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: