بعد إكمال الخطوات الواردة في قسم الاستعداد لاستخدام واجهة برمجة تطبيقات الأشخاص، تصبح جاهزًا للاطّلاع على جهات الاتصال وإدارتها.
توضح نماذج التعليمات البرمجية التالية كيفية إرسال بعض الطلبات البسيطة. للحصول على قائمة كاملة بالطُرق، راجِع المستندات المرجعية.
إدراج جهات اتصال المستخدم
للحصول على قائمة بالأشخاص في جهات اتصال المستخدم، استخدِم الرمز التالي:
البروتوكول
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;
إدراج جهات اتصال المستخدم التي تم تغييرها
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 } }
مزيد من التفاصيل حول سلوك المزامنة على 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
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();
إنشاء جهة اتصال جديدة
من أجل إنشاء جهة اتصال جديدة، استخدم الرمز التالي:
البروتوكول
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();
استخدام الحصة لكل طلب
- طلب قراءة مهم واحد (عمليات قراءة جهات الاتصال والملف الشخصي)
- 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
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();
استخدام الحصة لكل طلب
- طلب قراءة مهم واحد (عمليات قراءة جهات الاتصال والملف الشخصي)
- 1 طلب كتابة مهم (عمليات إنشاء جهات الاتصال والتحديثات)
- رسالة واحدة للتواصل يوميًا (الإجمالي)
حذف جهة اتصال حالية
لحذف جهة اتصال حالية، استخدم الرمز التالي:
البروتوكول
DELETE /v1/resource_name:deleteContact HTTP/1.1 Host: people.googleapis.com
Java
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
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();
استخدام الحصة لكل طلب
- 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
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();
استخدام الحصة لكل طلب
- 6 طلبات مهمة للقراءة (عمليات قراءة جهات الاتصال والملف الشخصي)
- 6 طلبات كتابة مهمة (عمليات إنشاء جهات الاتصال والتحديثات)
- 200 رسالة اتصال يومية (الإجمالي)
حذف جهات الاتصال الحالية بشكل مجمّع
من أجل حذف جهات الاتصال الحالية بشكل مجمّع، استخدِم الرمز التالي:
البروتوكول
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();
استخدام الحصة لكل طلب
- 10 طلبات كتابة (عمليات حذف جهات الاتصال وكتابة مجموعة جهات الاتصال)