Чтение, копирование и поиск в разделе «Другие контакты»

После выполнения шагов, описанных в разделе «Подготовка к использованию People API» , вы готовы читать, копировать и искать данные «Другие контакты».

Следующие примеры кода демонстрируют, как отправить несколько простых запросов. Полный список методов смотрите в справочной документации .

Перечислите «Другие контакты» пользователя.

Чтобы получить список людей в «Других контактах» пользователя , используйте следующий код:

GET /v1/otherContacts?readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com
ListOtherContactsResponse response = peopleService.otherContacts().list()
   
.setReadMask("metadata,names,emailAddresses")
   
.execute();

List<Person> otherContacts = response.getOtherContacts();

Перечислите «Другие контакты» пользователя, которые изменились.

Ява
// 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
 
}
}

Более подробную информацию о поведении синхронизации можно найти в ListOtherContacts .

Скопируйте «Другой контакт» в группу «Мои контакты».

Чтобы скопировать «Другой контакт» в группу «Мои контакты» , используйте следующий код:

POST /v1/resource_name:copyOtherContactToMyContactsGroup?copyMask=names,emailAddresses,phoneNumbers HTTP/1.1
Host: people.googleapis.com
Person copiedContact = peopleService
   
.otherContacts()
   
.copyOtherContactToMyContactsGroup(
       
"resource_name",
       
new CopyOtherContactToMyContactsGroupRequest()
           
.setCopyMask("names,emailAddresses,phoneNumbers"))
   
.execute();

Найдите пользователя в списке «Другие контакты»

Чтобы выполнить поиск по всем «Другим контактам» пользователя , используйте следующий код:

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

После выполнения шагов, описанных в разделе «Подготовка к использованию People API» , вы готовы читать, копировать и искать данные «Другие контакты».

Следующие примеры кода демонстрируют, как отправить несколько простых запросов. Полный список методов смотрите в справочной документации .

Перечислите «Другие контакты» пользователя.

Чтобы получить список людей в «Других контактах» пользователя , используйте следующий код:

GET /v1/otherContacts?readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com
ListOtherContactsResponse response = peopleService.otherContacts().list()
   
.setReadMask("metadata,names,emailAddresses")
   
.execute();

List<Person> otherContacts = response.getOtherContacts();

Перечислите «Другие контакты» пользователя, которые изменились.

Ява
// 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
 
}
}

Более подробную информацию о поведении синхронизации можно найти в ListOtherContacts .

Скопируйте «Другой контакт» в группу «Мои контакты».

Чтобы скопировать «Другой контакт» в группу «Мои контакты» , используйте следующий код:

POST /v1/resource_name:copyOtherContactToMyContactsGroup?copyMask=names,emailAddresses,phoneNumbers HTTP/1.1
Host: people.googleapis.com
Person copiedContact = peopleService
   
.otherContacts()
   
.copyOtherContactToMyContactsGroup(
       
"resource_name",
       
new CopyOtherContactToMyContactsGroupRequest()
           
.setCopyMask("names,emailAddresses,phoneNumbers"))
   
.execute();

Найдите пользователя в списке «Другие контакты»

Чтобы выполнить поиск по всем «Другим контактам» пользователя , используйте следующий код:

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