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

پس از تکمیل مراحل 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')

PHP

$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')

PHP

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