Ler, copiar e pesquisar "Outros contatos"

Depois de concluir as etapas em Preparar-se para usar a API People, você poderá ler, copiar e pesquisar dados de "Outros contatos".

Os exemplos de código abaixo demonstram como enviar algumas solicitações simples. Para uma lista completa de métodos, consulte a documentação de referência.

Listar os "Outros contatos" do usuário

Para receber uma lista de pessoas no "Outros contatos" do usuário, use o seguinte código:

Protocolo

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

Listar os "Outros contatos" do usuário que foram alterados

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

Mais detalhes sobre o comportamento de sincronização em ListOtherContacts.

Copiar um "Outro contato" para o grupo "myContacts"

Para copiar um "Outro contato" para o grupo "myContacts", use o seguinte código:

Protocolo

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

Pesquisar os "Outros contatos" do usuário

Para pesquisar todos os "Outros contatos" do usuário, use o seguinte código:

Protocolo

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