Dopo aver completato i passaggi descritti in Prepararsi a utilizzare l'API People, puoi leggere e gestire i contatti.
I seguenti esempi di codice mostrano come inviare alcune richieste semplici. Per un elenco completo dei metodi, consulta la documentazione di riferimento.
Elenca i contatti dell'utente
Per ottenere un elenco di persone nei contatti dell'utente, utilizza il seguente codice:
Protocollo
GET /v1/people/me/connections?personFields=names,emailAddresses HTTP/1.1 Host: people.googleapis.com
Java
ListConnectionsResponse response = peopleService.people().connections().list("people/me") .setPersonFields("names,emailAddresses") .execute(); List<Person> people = response.getConnections();
Python
people = people_service.people().connections() .list('people/me', personFields='names,emailAddresses')
PHP
$people = $people_service->people_connections->listPeopleConnections( 'people/me', array('personFields' => 'names,emailAddresses'));
.NET
PeopleResource.ConnectionsResource.ListRequest peopleRequest = peopleService.People.Connections.List("people/me"); peopleRequest.PersonFields = "names,emailAddresses"; ListConnectionsResponse response = peopleRequest.Execute(); IList<Person> people = response.Connections;
Elenca i contatti dell'utente che sono stati modificati
Java
// Initial request ListConnectionsResponse fullSyncResponse = peopleService.people().connections().list("people/me") .setPersonFields("metadata,names,emailAddresses") .setRequestSyncToken(true) .execute(); // Fetch all the pages while (fullSyncResponse.getNextPageToken() != null) { fullSyncResponse = peopleService.people().connections().list("people/me") .setPersonFields("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 { ListConnectionsResponse incrementalSyncResponse = peopleService.people().connections().list("people/me") .setPersonFields("metadata,names,emailAddresses") .setSyncToken(fullSyncResponse.getNextSyncToken()) .execute(); for (Person person : incrementalSyncResponse.getConnections()) { handlePerson(person); } // Fetch all the pages while (incrementalSyncResponse.getNextPageToken() != null) { incrementalSyncResponse = peopleService.people().connections().list("people/me") .setPersonFields("metadata,names,emailAddresses") .setSyncToken(fullSyncResponse.getNextSyncToken()) .setPageToken(incrementalSyncResponse.getNextPageToken()) .execute(); for (Person person : incrementalSyncResponse.getConnections()) { 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 } }
Per ulteriori dettagli sul comportamento di sincronizzazione, consulta ListConnections.
Cercare nei contatti dell'utente
Per cercare in tutti i contatti dell'utente, utilizza il seguente codice:
Protocollo
// Warmup cache GET /v1/people:searchContacts?query=&readMask=names,emailAddresses HTTP/1.1 Host: people.googleapis.com// Send search request after several seconds GET /v1/people:searchContacts?query=query&readMask=names,emailAddresses HTTP/1.1 Host: people.googleapis.com
Java
// Warmup cache SearchResponse response = peopleService.people().searchContacts() .setQuery("") .setReadMask("names,emailAddresses") .execute();// Wait a few seconds Thread.sleep(5);
// Send search request SearchResponse response = peopleService.people().searchContacts() .setQuery("query") .setReadMask("names,emailAddresses") .execute();
Crea un nuovo contatto
Per creare un nuovo contatto, utilizza il seguente codice:
Protocollo
POST /v1/people:createContact HTTP/1.1 Body: { "names": [{ "givenName": "John", "familyName": "Doe" }] } Host: people.googleapis.com
Java
Person contactToCreate = new Person(); List<Name> names = new ArrayList<>(); names.add(new Name().setGivenName("John").setFamilyName("Doe")); contactToCreate.setNames(names); Person createdContact = peopleService.people().createContact(contactToCreate).execute();
Utilizzo della quota per richiesta
- 1 richieste di lettura critiche (letture di contatti e profili)
- 1 richieste di scrittura critiche (creazione e aggiornamento dei contatti)
- 1 Scritture giornaliere dei contatti (totale)
Aggiornare un contatto esistente
Per aggiornare un contatto esistente,
devi includere il campo person.metadata.sources.etag
nella persona per il
contatto da aggiornare per assicurarti che il contatto non sia cambiato dall'ultima
lettura. Utilizza il seguente codice:
Protocollo
PATCH /v1/resource_name:updateContact?updatePersonFields=emailAddresses HTTP/1.1 Body: { "resourceName": "resource_name", "etag": "etag", "emailAddresses": [{ "value": "john.doe@gmail.com" }], } Host: people.googleapis.com
Java
Person contactToUpdate = peopleService.people().get("resource_name").execute(); List<EmailAddress> emailAddresses = new ArrayList<>(); emailAddresses.add(new EmailAddress().setValue("john.doe@gmail.com")); contactToUpdate.setEmailAddresses(emailAddresses); Person updatedContact = peopleService.people() .updateContact(contactToUpdate.getResourceName(), contactToUpdate) .setUpdatePersonFields("emailAddresses") .execute();
Utilizzo della quota per richiesta
- 1 richieste di lettura critiche (letture di contatti e profili)
- 1 richieste di scrittura critiche (creazione e aggiornamento dei contatti)
- 1 Scritture giornaliere dei contatti (totale)
Eliminare un contatto esistente
Per eliminare un contatto esistente, utilizza il seguente codice:
Protocollo
DELETE /v1/resource_name:deleteContact HTTP/1.1 Host: people.googleapis.com
Java
peopleService.people().deleteContact("resource_name").execute();
Utilizzo della quota per richiesta
- 1 richiesta di scrittura (eliminazione di contatti e scrittura di gruppi di contatti)
Creare nuovi contatti in blocco
Per creare nuovi contatti in blocco, utilizza il seguente codice:
Protocollo
POST /v1/people:batchCreateContacts?readMask=names HTTP/1.1 Body: { "contacts": [ { "contactPerson": { "names": [ { "givenName": "John", "familyName": "Doe" } ] } } ] } Host: people.googleapis.com
Java
Person person1 = new Person(); person1.setNames(ImmutableList.of(new Name().setGivenName("John").setFamilyName("Doe"))); ContactToCreate contactToCreate1 = new ContactToCreate(); contactToCreate1.setContactPerson(person1); Person person2 = new Person(); person2.setNames(ImmutableList.of(new Name().setGivenName("Bob").setFamilyName("Dylan"))); ContactToCreate contactToCreate2 = new ContactToCreate(); contactToCreate2.setContactPerson(person2); BatchCreateContactsRequest request = new BatchCreateContactsRequest(); request.setContacts(ImmutableList.of(contactToCreate1, contactToCreate2)).setReadMask("names"); BatchCreateContactsResponse response = peopleService.people().batchCreateContacts(request).execute();
Utilizzo della quota per richiesta
- 6 richieste di lettura critiche (letture di contatti e profili)
- 6 richieste di scrittura critiche (creazione e aggiornamento dei contatti)
- 200 operazioni di scrittura dei contatti giornaliere (totale)
Aggiornare in blocco i contatti esistenti
Per
aggiornare un contatto esistente,
devi includere il campo person.metadata.sources.etag
in ogni persona per il
contatto da aggiornare per assicurarti che il contatto non sia cambiato dall'ultima
lettura. Utilizza il seguente codice:
Protocollo
POST /v1/people:batchUpdateContacts?updateMask=names&readMask=names,emailAddresses HTTP/1.1 Body: { "contacts": { "resource_name": { "emailAddresses": [ { "value": "john.doe@gmail.com" } ] "etag": "etag" } } } Host: people.googleapis.com
Java
Person contactToUpdate = peopleService.people().get("resource_name").execute(); contactToUpdate.setNames( ImmutableList.of(new Name().setGivenName("John").setFamilyName("Doe"))); BatchUpdateContactsRequest request = new BatchUpdateContactsRequest(); ImmutableMap<String, Person> map = ImmutableMap.of(contactToUpdate.getResourceName(), contactToUpdate); request.setContacts(map).setUpdateMask("names").setReadMask("names,emailAddresses"); BatchUpdateContactsResponse response = peopleService.people().batchUpdateContacts(request).execute();
Utilizzo della quota per richiesta
- 6 richieste di lettura critiche (letture di contatti e profili)
- 6 richieste di scrittura critiche (creazione e aggiornamento dei contatti)
- 200 operazioni di scrittura dei contatti giornaliere (totale)
Eliminare in blocco i contatti esistenti
Per eliminare collettivamente i contatti esistenti, utilizza il seguente codice:
Protocollo
POST /v1/people:batchDeleteContacts HTTP/1.1 Body: {"resource_names": ["resource_name"]} Host: people.googleapis.com
Java
BatchDeleteContactsRequest request = new BatchDeleteContactsRequest(); request.setResourceNames(ImmutableList.of(resource_name)); peopleService.people().batchDeleteContacts(request).execute();
Utilizzo della quota per richiesta
- 10 richieste di scrittura (eliminazioni di contatti e scritture di gruppi di contatti)