问题
Google People API
, unlike Google Plus API
doesn't provide an unique id
for each Person
resource in the response.
Why has this been deprecated/removed and how to uniquely identify a Person
in an user's contacts list without an id
?
回答1:
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.
来源:https://stackoverflow.com/questions/39608425/how-to-uniquely-identity-a-person-resource-in-google-people-api-response-from-a