Membaca dan Mengelola Kontak

Setelah menyelesaikan langkah-langkah di Bersiap Menggunakan People API, Anda siap membaca dan mengelola kontak.

Contoh kode berikut menunjukkan cara mengirim beberapa permintaan sederhana. Untuk mengetahui daftar lengkap metode, lihat dokumentasi referensi.

Mencantumkan kontak pengguna

Untuk mendapatkan daftar orang di kontak pengguna, gunakan kode berikut:

GET /v1/people/me/connections?personFields=names,emailAddresses HTTP/1.1
Host: people.googleapis.com
ListConnectionsResponse response = peopleService.people().connections().list("people/me")
   
.setPersonFields("names,emailAddresses")
   
.execute();
List<Person> people = response.getConnections();
people = people_service.people().connections()
   
.list('people/me', personFields='names,emailAddresses')
$people = $people_service->people_connections->listPeopleConnections(
   
'people/me', array('personFields' => 'names,emailAddresses'));
PeopleResource.ConnectionsResource.ListRequest peopleRequest =
    peopleService
.People.Connections.List("people/me");
peopleRequest
.PersonFields = "names,emailAddresses";
ListConnectionsResponse response = peopleRequest.Execute();
IList<Person> people = response.Connections;

Mencantumkan kontak pengguna yang telah berubah

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

Detail selengkapnya tentang perilaku sinkronisasi di ListConnections.

Menelusuri kontak pengguna

Untuk menelusuri semua kontak pengguna, gunakan kode berikut:

ProtokolJava
// 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

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

Buat kontak baru

Untuk membuat kontak baru, gunakan kode berikut:

ProtokolJava
POST /v1/people:createContact HTTP/1.1
Body: { "names": [{ "givenName": "John", "familyName": "Doe" }] }
Host: people.googleapis.com
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();

Penggunaan kuota per permintaan

  • 1 Permintaan operasi baca penting (Pembacaan Kontak dan Profil)
  • 1 Permintaan tulis penting (Pembuatan dan Pembaruan Kontak)
  • 1 Daily Contact Writes (Total)

Memperbarui kontak yang ada

Untuk memperbarui kontak yang ada, Anda harus menyertakan kolom person.metadata.sources.etag di orang agar kontak diperbarui untuk memastikan kontak tidak berubah sejak Anda terakhir membacanya. Gunakan kode berikut:

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

Penggunaan kuota per permintaan

  • 1 Permintaan operasi baca penting (Pembacaan Kontak dan Profil)
  • 1 Permintaan tulis penting (Pembuatan dan Pembaruan Kontak)
  • 1 Daily Contact Writes (Total)

Menghapus kontak yang ada

Untuk menghapus kontak yang ada, gunakan kode berikut:

ProtokolJava
DELETE /v1/resource_name:deleteContact HTTP/1.1
Host: people.googleapis.com
peopleService.people().deleteContact("resource_name").execute();

Penggunaan kuota per permintaan

  • 1 Permintaan tulis (Penghapusan Kontak dan Tulis Grup Kontak)

Membuat kontak baru secara massal

Untuk membuat kontak baru secara massal, gunakan kode berikut:

ProtokolJava
POST /v1/people:batchCreateContacts?readMask=names HTTP/1.1
Body: {
 
"contacts": [
   
{
     
"contactPerson": {
       
"names": [
         
{
           
"givenName": "John",
           
"familyName": "Doe"
         
}
       
]
     
}
   
}
 
]
}
Host: people.googleapis.com
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();

Penggunaan kuota per permintaan

  • 6 Permintaan baca penting (Baca Kontak dan Profil)
  • 6 Permintaan tulis penting (Pembuatan dan Pembaruan Kontak)
  • 200 Operasi Tulis Kontak Harian (Total)

Memperbarui kontak yang ada secara massal

Untuk memperbarui kontak yang ada, Anda harus menyertakan kolom person.metadata.sources.etag di setiap orang agar kontak diperbarui untuk memastikan kontak tidak berubah sejak Anda terakhir membacanya. Gunakan kode berikut:

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

Penggunaan kuota per permintaan

  • 6 Permintaan baca penting (Baca Kontak dan Profil)
  • 6 Permintaan tulis penting (Pembuatan dan Pembaruan Kontak)
  • 200 Operasi Tulis Kontak Harian (Total)

Menghapus kontak yang ada secara massal

Untuk menghapus kontak yang ada secara massal, gunakan kode berikut:

ProtokolJava
POST /v1/people:batchDeleteContacts HTTP/1.1
Body: {"resource_names": ["resource_name"]}
Host: people.googleapis.com
BatchDeleteContactsRequest request = new BatchDeleteContactsRequest();

request
.setResourceNames(ImmutableList.of(resource_name));

peopleService
.people().batchDeleteContacts(request).execute();

Penggunaan kuota per permintaan

  • 10 Permintaan tulis (Penghapusan Kontak dan Tulis Grup Kontak)