Kişiler hizmetinden People API gelişmiş hizmetine geçiş

Apps Komut Dosyası,Kişiler hizmetinin desteğini 16 Aralık 2022'de sonlandırdı. Bunun yerine People API gelişmiş hizmetini kullanın. People API, daha yeni bir JSON protokolü kullanır ve kişileri profillerle birleştirme gibi gelişmiş özellikler sunar.

Bu kılavuzu kullanarak hangi Kişiler hizmeti yöntemlerinin People API gelişmiş hizmetinde karşılığı olmadığını, bunun yerine ne kullanabileceğinizi öğrenebilir ve yaygın görevleri taşımak için kod örnekleri bulabilirsiniz. Daha fazla bilgi için Contacts API Geçiş Rehberi'ne bakın.

People API'de karşılığı olmayan yöntemler

Aşağıdaki listelerde, Kişiler API'si gelişmiş hizmetinde kişileri aramak için eşdeğer yöntemleri olmayan Kişiler hizmetindeki getContacts yöntemleri yer almaktadır. People API gelişmiş hizmetiyle, CONTACT kaynağından gelen bir kişinin names, nickNames, emailAddresses, phoneNumbers ve organizations alanlarına göre arama yapabilirsiniz.

Eşdeğeri olmayan yöntemler
  • getContactsByAddress(query)
  • getContactsByAddress(query, label)
  • getContactsByAddress(query, label)
  • getContactsByCustomField(query, label)
  • getContactsByDate(month, day, label)
  • getContactsByDate(month, day, year, label)
  • getContactsByDate(month, day, year, label)
  • getContactsByIM(query)
  • getContactsByIM(query, label)
  • getContactsByJobTitle(query)
  • getContactsByNotes(query)
  • getContactsByUrl(query)
  • getContactsByUrl(query, label)
  • getContactsByGroup(group)

Aşağıda, Contacts hizmetindeki getContacts yöntemlerinin, ek bir label parametresi kullandığı listelenmiştir. Kişiler API'sinin gelişmiş hizmetinde searchContacts kullanarak kişileri eşdeğer alana göre alabilirsiniz ancak aramayı belirli bir etiketle sınırlayamazsınız.

Kısmi eşdeğerleri olan yöntemler
  • getContactsByEmailAddress(query, label)
  • getContactsByName(query, label)
  • getContactsByPhone(query, label)

People API ile kullanılabilen ek özellikler

People API gelişmiş hizmetine geçtiğinizde, Kişiler hizmetinde kullanılamayan aşağıdaki People API özelliklerine erişebilirsiniz:

  • Veri kaynağını belirtme: Bir kişi hakkında bilgi ararken Google Kişiler veya Google profili gibi arama yapılacak yeri belirtebilirsiniz.
  • Sorgu dizesine göre kişi arama: Belirli bir dizeyle eşleşen profillerin ve kişilerin listesini alabilirsiniz.
  • Toplu istekler: Komut dosyası yürütme sürenizi azaltmak için People API çağrılarınızı toplu olarak gönderebilirsiniz.

Sık kullanılan görevler için kod örnekleri

Bu bölümde, Kişiler hizmetindeki yaygın görevler listelenmektedir. Kod örneklerinde, People API gelişmiş hizmeti kullanılarak görevlerin nasıl oluşturulacağı gösterilmektedir.

Ada göre kişi grubu alma

Aşağıdaki kod örneğinde, bir kişi grubunun adıyla nasıl alınacağı gösterilmektedir. Bu, Kişiler hizmetindeki getContactGroup(name) ile eşdeğerdir.

advanced/people.gs
/**
 * Gets a contact group with the given name
 * @param {string} name The group name.
 * @see https://developers.google.com/people/api/rest/v1/contactGroups/list
 */
function getContactGroup(name) {
  try {
    const people = People.ContactGroups.list();
    // Finds the contact group for the person where the name matches.
    const group = people['contactGroups'].find((group) => group['name'] === name);
    // Prints the contact group
    console.log('Group: %s', JSON.stringify(group, null, 2));
  } catch (err) {
    // TODO (developers) - Handle exception
    console.log('Failed to get the contact group with an error %s', err.message);
  }
}

E-posta adresine göre kişi alma

Aşağıdaki kod örneğinde, Kişiler hizmetindeki getContact(emailAddress) ile eşdeğer olan e-posta adresine göre bir kişinin nasıl alınacağı gösterilmektedir.

advanced/people.gs
/**
 * Gets a contact by the email address.
 * @param {string} email The email address.
 * @see https://developers.google.com/people/api/rest/v1/people.connections/list
 */
function getContactByEmail(email) {
  try {
    // Gets the person with that email address by iterating over all contacts.
    const people = People.People.Connections.list('people/me', {
      personFields: 'names,emailAddresses'
    });
    const contact = people['connections'].find((connection) => {
      return connection['emailAddresses'].some((emailAddress) => emailAddress['value'] === email);
    });
    // Prints the contact.
    console.log('Contact: %s', JSON.stringify(contact, null, 2));
  } catch (err) {
    // TODO (developers) - Handle exception
    console.log('Failed to get the connection with an error %s', err.message);
  }
}

Tüm kişileri alma

Aşağıdaki kod örneğinde, bir kullanıcının tüm kişilerinin nasıl alınacağı gösterilmektedir. Bu, Kişiler hizmetindeki getContacts() ile eşdeğerdir.

advanced/people.gs
/**
 * Gets a list of people in the user's contacts.
 * @see https://developers.google.com/people/api/rest/v1/people.connections/list
 */
function getConnections() {
  try {
    // Get the list of connections/contacts of user's profile
    const people = People.People.Connections.list('people/me', {
      personFields: 'names,emailAddresses'
    });
    // Print the connections/contacts
    console.log('Connections: %s', JSON.stringify(people, null, 2));
  } catch (err) {
    // TODO (developers) - Handle exception here
    console.log('Failed to get the connection with an error %s', err.message);
  }
}

Kişinin tam adını alma

Aşağıdaki kod örneğinde, Kişiler hizmetindeki getFullName() ile eşdeğer olan bir kişinin tam adının nasıl alınacağı gösterilmektedir.

advanced/people.gs
/**
 * Gets the full name (given name and last name) of the contact as a string.
 * @see https://developers.google.com/people/api/rest/v1/people/get
 */
function getFullName() {
  try {
    // Gets the person by specifying resource name/account ID
    // in the first parameter of People.People.get.
    // This example gets the person for the user running the script.
    const people = People.People.get('people/me', {personFields: 'names'});
    // Prints the full name (given name + family name)
    console.log(`${people['names'][0]['givenName']} ${people['names'][0]['familyName']}`);
  } catch (err) {
    // TODO (developers) - Handle exception
    console.log('Failed to get the connection with an error %s', err.message);
  }
}

Bir kişiye ait tüm telefon numaralarını alma

Aşağıdaki kod örneğinde, bir kişiye ait tüm telefon numaralarının nasıl alınacağı gösterilmektedir. Bu, Kişiler hizmetindeki getPhones() ile eşdeğerdir.

advanced/people.gs
/**
 * Gets all the phone numbers for this contact.
 * @see https://developers.google.com/people/api/rest/v1/people/get
 */
function getPhoneNumbers() {
  try {
    // Gets the person by specifying resource name/account ID
    // in the first parameter of People.People.get.
    // This example gets the person for the user running the script.
    const people = People.People.get('people/me', {personFields: 'phoneNumbers'});
    // Prints the phone numbers.
    console.log(people['phoneNumbers']);
  } catch (err) {
    // TODO (developers) - Handle exception
    console.log('Failed to get the connection with an error %s', err.message);
  }
}

Bir kişi için belirli bir telefon numarasını alma

Aşağıdaki kod örneğinde, Kişiler hizmetindeki getPhoneNumber() işlevine eşdeğer olan, bir kişi için belirli bir telefon numarasının nasıl alınacağı gösterilmektedir.

advanced/people.gs
/**
 * Gets a phone number by type, such as work or home.
 * @see https://developers.google.com/people/api/rest/v1/people/get
 */
function getPhone() {
  try {
    // Gets the person by specifying resource name/account ID
    // in the first parameter of People.People.get.
    // This example gets the person for the user running the script.
    const people = People.People.get('people/me', {personFields: 'phoneNumbers'});
    // Gets phone number by type, such as home or work.
    const phoneNumber = people['phoneNumbers'].find((phone) => phone['type'] === 'home')['value'];
    // Prints the phone numbers.
    console.log(phoneNumber);
  } catch (err) {
    // TODO (developers) - Handle exception
    console.log('Failed to get the connection with an error %s', err.message);
  }
}