Ishan Shah
Ishan Shah

Reputation: 1676

Need to find first & Last name from google Contact API

I need to fetch google contact using jquery. and i have success fully implement. but what the issue is i unble to fetch the name of that contact. google is just providing me email address of that user. no other information is provided by user. so am i miss something.

Here i attach full code with response.

Here is full code

<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript">
    var clientId = "google_clientId";
    var apiKey = "google_api_key";
    var scopes = 'https://www.google.com/m8/feeds/';
    $(document).on("click", ".googleContactsButton", function (e) {
        gapi.client.setApiKey(apiKey);
        window.setTimeout(authorize);
    });
    function authorize() {
        gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthorization);
    }

    function handleAuthorization(authorizationResult) {
        if (authorizationResult && !authorizationResult.error) {
       
            $.get("https://www.google.com/m8/feeds/contacts/default/full?alt=json&access_token=" + authorizationResult.access_token + "&alt=json",
                    function (response) {
                        //process the response here
                        console.log(JSON.stringify(response));
                 
                    });
        }
    }
</script>

Here is Response of the API

[
  {
    "id": {
      "$t": "http://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/base/87427988f9359bf"
    },
    "updated": {
      "$t": "2016-07-21T08:09:55.053Z"
    },
    "category": [
      {
        "scheme": "http://schemas.google.com/g/2005#kind",
        "term": "http://schemas.google.com/contact/2008#contact"
      }
    ],
    "title": {
      "type": "text",
      "$t": ""
    },
    "link": [
      {
        "rel": "http://schemas.google.com/contacts/2008/rel#edit-photo",
        "type": "image/*",
        "href": "https://www.google.com/m8/feeds/photos/media/ishan%40inheritx.com/87427988f9359bf/1B2M2Y8AsgTpgAmY7PhCfg"
      },
      {
        "rel": "self",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf"
      },
      {
        "rel": "edit",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf/1469088595053001"
      }
    ],
    "gd$email": [
      {
        "rel": "http://schemas.google.com/g/2005#other",
        "address": "[email protected]"
      }
    ]
  }
]

In response we didn't find any field like first-name and last-name. any help would be appreciate.

But if i added Name manually then it shows me in title key. but if that contact name is sync from google+ then it shows me blank.

Thanks

Upvotes: 1

Views: 960

Answers (2)

Blake O&#39;Hare
Blake O&#39;Hare

Reputation: 1880

Add a &v=3 to the end of the URL. This will populate the name field. However, since the title field is empty in the response, that means this specific contact does not have any name applied to it.

Also, unrelated and harmless, but it looks like you're specifying alt=json twice in the URL query params.

Upvotes: 1

ReyAnthonyRenacia
ReyAnthonyRenacia

Reputation: 17613

we didn't find any field like first-name and last-name. any help would be appreciated

Getting the full name of your contact is a bit tricky. Using oauth playground, Contactsv3, here's how I did it:

  1. First, you need to know the contactId of your contact. How?

    GET https://www.google.com/m8/feeds/contacts/{your_userEmail}/full

    This URI request will return all contacts associated with your email. Now the contactId is found in XML <id> tag. <id>http://www.google.com/m8/feeds/contacts/../base/123456789abcdefg</id>

    In this case, 123456789abcdefg is the contactId of a certain person. The full name is found in the <title> tag.
    <title type="text">John Carmack</title>

  2. To fetch the person's contact details individually, unlike in Step 1, use: GET https://www.google.com/m8/feeds/contacts/{your_userEmail}/full/123456789abcdefg

It is now up to you to parse this response and use it accordingly. I haven't checked if there's a JSON format, but I hope this helps you.

Upvotes: 0

Related Questions