AI-generated Key Takeaways
-  This guide demonstrates how to use the People API to interact with a user's "Other contacts" data after completing the initial setup. 
-  You can retrieve a list of contacts, including changes since the last sync, and copy them to the "myContacts" group. 
-  The API also enables searching within "Other contacts" but requires an initial warmup request for optimal results. 
-  Java code snippets and HTTP request examples are provided for each function, making integration easier. 
After you've completed the steps in Get Ready to Use the People API , you are ready to read, copy, and search "Other contacts" data.
The following code samples demonstrate how to send a few simple requests. For a full list of methods, see the reference documentation .
List the user's "Other contacts"
To get a list of people in the user's "Other contacts" , use the following code:
Protocol
GET /v1/otherContacts?readMask=names,emailAddresses HTTP / 1.1 Host : people.googleapis.com
Java
ListOtherContactsResponse response = peopleService . otherContacts (). list () . setReadMask ( "metadata,names,emailAddresses" ) . execute (); List<Person > otherContacts = response . getOtherContacts ();
List the user's "Other contacts" that have changed
Java
// Initial request ListOtherContactsResponse fullSyncResponse = peopleService . otherContacts (). list () . setReadMask ( "metadata,names,emailAddresses" ) . setRequestSyncToken ( true ) . execute (); // Fetch all the pages while ( fullSyncResponse . getNextPageToken () != null ) { fullSyncResponse = peopleService . otherContacts (). list () . 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 { ListOtherContactsResponse incrementalSyncResponse = peopleService . otherContacts (). list () . setReadMask ( "metadata,names,emailAddresses" ) . setSyncToken ( fullSyncResponse . getNextSyncToken ()) . execute (); for ( Person person : incrementalSyncResponse . getOtherContacts ()) { handlePerson ( person ); } // Fetch all the pages while ( ! incrementalSyncResponse . getNextPageToken (). isEmpty ()) { incrementalSyncResponse = peopleService . otherContacts (). list () . setReadMask ( "metadata,names,emailAddresses" ) . setSyncToken ( fullSyncResponse . getNextSyncToken ()) . setPageToken ( incrementalSyncResponse . getNextPageToken ()) . execute (); for ( Person person : incrementalSyncResponse . getOtherContacts ()) { 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 ListOtherContacts .
Copy an "Other contact" to "myContacts" group
To copy an "Other contact" to "myContacts" group , use the following code:
Protocol
POST /v1/ resource_name :copyOtherContactToMyContactsGroup?copyMask=names,emailAddresses,phoneNumbers HTTP / 1.1 Host : people.googleapis.com
Java
Person copiedContact = peopleService . otherContacts () . copyOtherContactToMyContactsGroup ( " resource_name " , new CopyOtherContactToMyContactsGroupRequest () . setCopyMask ( "names,emailAddresses,phoneNumbers" )) . execute ();
Search the user's "Other contacts"
To search all of the user's "Other contacts" , use the following code:
Protocol
// Warmup cache GET / v1 / otherContacts : search ? query = & readMask = names , emailAddresses HTTP / 1.1 Host : people . googleapis . com // Send search request after several seconds GET / v1 / otherContacts : search ? query = query &readMask = names , emailAddresses HTTP / 1.1 Host : people . googleapis . com
Java
// Warmup cache SearchResponse response = peopleService . otherContacts (). search () . setQuery ( "" ) . setReadMask ( "names,emailAddresses" ) . execute (); // Wait a few seconds Thread . sleep ( 5 ); // Send search request SearchResponse response = peopleService . otherContacts (). search () . setQuery ( " query " ) . setReadMask ( "names,emailAddresses" ) . execute ();

