После выполнения шагов, описанных в разделе «Подготовка к использованию 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();