پس از تکمیل مراحل Get Ready to Use People API، آماده خواندن و مدیریت مخاطبین هستید.
نمونه کد زیر نحوه ارسال چند درخواست ساده را نشان می دهد. برای فهرست کامل روشها، به مستندات مرجع مراجعه کنید.
برای دریافت لیستی از افراد در مخاطبین کاربر ، از کد زیر استفاده کنید:
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;
// 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 } }
جزئیات بیشتر درباره رفتار همگامسازی در ListConnections .
برای جستجوی تمام مخاطبین کاربر ، از کد زیر استفاده کنید:
// 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();
برای ایجاد یک مخاطب جدید ، از کد زیر استفاده کنید:
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();
- 1 درخواست خواندن حیاتی (خواندن مخاطب و نمایه)
- 1 درخواست نوشتن حیاتی (تخمین ایجاد می کند و به روز می شود)
- 1 نوشته روزانه مخاطب (مجموع)
برای بهروزرسانی یک مخاطب موجود ، باید فیلد person.metadata.sources.etag را در شخص قرار دهید تا مخاطب بهروزرسانی شود تا مطمئن شوید که مخاطب از آخرین مطالعه شما تغییر نکرده است. از کد زیر استفاده کنید:
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();
- 1 درخواست خواندن حیاتی (خواندن مخاطب و نمایه)
- 1 درخواست نوشتن حیاتی (تخمین ایجاد می کند و به روز می شود)
- 1 نوشته روزانه مخاطب (مجموع)
برای حذف یک مخاطب موجود ، از کد زیر استفاده کنید:
DELETE /v1/resource_name:deleteContact HTTP/1.1 Host: people.googleapis.com
peopleService.people().deleteContact("resource_name").execute();
- 1 درخواست بنویسید (تماس حذف می کند و گروه تماس می نویسد)
برای ایجاد دسته ای مخاطبین جدید ، از کد زیر استفاده کنید:
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();
- 6 درخواست خواندن حیاتی (خواندن تماس و نمایه)
- 6 درخواست نوشتن حیاتی (تخمین ایجاد می کند و به روز می شود)
- 200 نوشته تماس روزانه (مجموع)
برای بهروزرسانی یک مخاطب موجود ، باید فیلد person.metadata.sources.etag را در هر فرد قرار دهید تا مخاطب بهروزرسانی شود تا مطمئن شوید که مخاطب از آخرین مطالعه شما تغییر نکرده است. از کد زیر استفاده کنید:
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();
- 6 درخواست خواندن حیاتی (خواندن تماس و نمایه)
- 6 درخواست نوشتن حیاتی (تخمین ایجاد می کند و به روز می شود)
- 200 نوشته تماس روزانه (مجموع)
برای حذف دسته ای مخاطبین موجود ، از کد زیر استفاده کنید:
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();
- 10 درخواست نوشتن (تماس حذف می کند و گروه تماس می نویسد)