خواندن و مدیریت مخاطبین

پس از تکمیل مراحل 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 درخواست نوشتن (تماس حذف می کند و گروه تماس می نویسد)
،

پس از تکمیل مراحل 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 درخواست نوشتن (تماس حذف می کند و گروه تماس می نویسد)