diff --git a/advanced/people.gs b/advanced/people.gs index d3c8767ad..10cf68d09 100644 --- a/advanced/people.gs +++ b/advanced/people.gs @@ -74,3 +74,116 @@ function getAccount(accountId) { } } // [END people_get_account] + +// [START people_get_group] + +/** + * 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); + } +} + +// [END people_get_group] + +// [START people_get_contact_by_email] + +/** + * 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); + } +} + +// [END people_get_contact_by_email] + +// [START people_get_full_name] +/** + * 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); + } +} + +// [END people_get_full_name] + +// [START people_get_phone_numbers] +/** + * 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); + } +} + +// [END people_get_phone_numbers] + +// [START people_get_single_phone_number] +/** + * 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); + } +} + +// [END people_get_single_phone_number]