Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to uniquely identity a Person resource in Google People API response from a particular user?

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?

like image 373
jackofblades Avatar asked Sep 21 '16 05:09

jackofblades


1 Answers

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.

like image 99
abraham Avatar answered Oct 16 '22 06:10

abraham