Extracting Contact Information from a Phonebook API

Getting Contact Information from a Phonebook API

Introduction

In this blog post, we’ll explore how to extract contact information such as names and phone numbers from a phonebook API. We’ll delve into the details of the API request process, data parsing, and implementing the functionality in a real-world scenario.

Choosing the Right API

To start with, let’s choose an Address Book API that supports retrieving contact information. Some popular options include:

  • Google People API
  • Facebook Graph API
  • Microsoft Graph API
  • OpenPhonebook API

For this example, we’ll use the Google People API.

Prerequisites

Before proceeding, ensure you have a Google Cloud Platform project and have enabled the Google People API. You can follow these steps to create a new project:

  1. Go to the Google Cloud Console.
  2. Create a new project or select an existing one.
  3. Click on “Enable APIs and Services” and search for “People API.”
  4. Click on “People API” and then click on the “Enable” button.

You’ll also need to create credentials for your API, which can be done using the Google Cloud Console.

Making an API Request

To get contact information from the Google People API, you’ll need to make a request to the /people/{personId}/get endpoint.

Example Code (JavaScript)

const axios = require('axios');

async function getContactInfo(personId) {
  const url = `https://people.googleapis.com/v1/people/${personId}:get`;
  const headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  };

  try {
    const response = await axios.get(url, { headers });
    return response.data;
  } catch (error) {
    console.error(error);
  }
}

// Usage
const personId = 'YOUR_PERSON_ID';
getContactInfo(personId).then((data) => {
  console.log(data);
});

Explanation

  • The axios library is used to make the HTTP request.
  • The API key should be replaced with your actual API key.
  • The personId parameter should be replaced with the ID of the person you want to retrieve contact information for.

Parsing Contact Information

The Google People API returns a JSON response that contains the requested contact information. Let’s take a closer look at the data:

{
  "name": {
    "familyName": "Smith",
    "givenName": "John"
  },
  "emailAddresses": [
    {
      "value": "john.smith@example.com"
    }
  ],
  "phoneNumbers": [
    {
      "value": "+1-555-1234567",
      "type": "mobile"
    }
  ]
}

Explanation

  • The name object contains the person’s full name, with familyName and givenName properties.
  • The emailAddresses array contains the person’s email addresses, with each address having a value property.
  • The phoneNumbers array contains the person’s phone numbers, with each number having a value property.

Implementing the Functionality

Now that we have an understanding of how to make API requests and parse contact information, let’s put it all together.

Example Code (JavaScript)

const axios = require('axios');

async function getContactInfo() {
  const personId = 'YOUR_PERSON_ID';
  const url = `https://people.googleapis.com/v1/people/${personId}:get`;
  const headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  };

  try {
    const response = await axios.get(url, { headers });
    return response.data;
  } catch (error) {
    console.error(error);
  }
}

async function addContact() {
  const name = prompt('Enter the person\'s full name:');
  const email = prompt('Enter the person\'s email address:');
  const phoneNumber = prompt('Enter the person\'s phone number:');

  const url = 'https://your-server.com/contacts';
  const data = {
    name,
    email,
    phoneNumber
  };

  try {
    const response = await axios.post(url, data);
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

// Usage
getContactInfo().then((data) => {
  console.log(data);
}).catch((error) => {
  console.error(error);
});

addContact();

Explanation

  • The getContactInfo function makes the API request to retrieve contact information.
  • The addContact function prompts the user for the person’s full name, email address, and phone number.
  • It then sends a POST request to the /contacts endpoint on your server with the new contact information.

Note that this is just an example code snippet, and you should adapt it to fit your specific use case.


Last modified on 2024-07-06