Reputation: 1676
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
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
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:
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>
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