Google People API
, unlike Google Plus API
doesn\'t provide an unique id
for each Person
resource in the response.
In short, use resourceName
as an ID.
The Google People API is the user's list of contacts and have IDs specific to the user. They can create contacts that only have a mailing address or only have a name and no contact info. There is no way for Google to logically collate all of these contacts across all of the Google Contacts users.
Specific contacts or a user have a resourceName
field that uniquely identifies that resource (contact) for the authenticating user. You basically want to use that as an id
. This is the value you for use, for example, to query People.get.
This is part of an example response of a single contact from People.connections:
{
"resourceName": "people/103710953423417258027",
"etag": "qwApd98gduQ=",
"metadata": {
"sources": [{
"type": "CONTACT",
"id": "1",
"etag": "#rj+KMFHVyHY="
}, {
"type": "PROFILE",
"id": "103710953423417258027",
"etag": "#4eZfef/IuMFw="
}],
"objectType": "PERSON"
},
...
}
resourceName
is essentially the "id" of that contact and then in the metadata
field it lists the sources the contact data comes from. E.g. CONTACT
is for a Google Contacts entry where the user has manually entered name/phone/email/etc. PROFILE
is a Google Profile, commonly with Google+ data.
The Person resource docs are a great place to learn more about these values.