Как искать информацию о пользователе из идентификатора GAIA Google?

Я работаю над парсером Hangouts.json для службы Google Takeout, которая принимает все разговоры, вложения и другую информацию из json файла и заполняет базу данных всем. Я закончил все, кроме единственной информации, которую предоставил json файл для тех, кто отправил то, что является идентификатором GAIA, который я смог выяснить, - это уникальный идентификатор, который Google использует между своими службами. Проблема в том, что я не знаю, как искать любую другую информацию о пользователе, такую ​​как имя, которое они идентифицируют, или их электронную почту.

Я знаю, что большая часть информации является общедоступной, так как вы можете взять идентификатор GAIA и поместить его в URL-адрес, например: https://plus.google.com/u/0/#####################/about, где # - идентификатор GAIA. Эта страница будет публично раскрывать свое имя экрана. Если неизвестен адрес электронной почты, то можно сделать следующее: reply-#####################@profiles.google.com, где это также можно будет использовать для связи с ними.

В идеале, я бы хотел найти имя пользователя без необходимости анализировать эту общедоступную + страницу, но истинное письмо также было бы замечательным. Поэтому в идеале я бы хотел, чтобы API или другой ресурс просматривали имена экранов и/или информацию электронной почты из идентификатора GAIA.

Ответ 1

ВАЖНОЕ ОБНОВЛЕНИЕ

Март 2019 года. Этот ответ все еще набирает голоса, однако Google отзывает/отозвал API Google Plus.

Вам понадобится альтернативное решение, так как оно больше не будет применяться.

Оригинальный ответ

Используйте API Google Plus: https://developers.google.com/+/api/

Я не тестировал специально с Hangouts (я никогда не знал, что существует API-интерфейс Hongouts!), Но он возвращает данные, заданные идентификаторами из других API.

Вы можете проверить это здесь: https://developers.google.com/apis-explorer/#p/plus/v1/plus.people.get, чтобы увидеть, что вы получите.

Ответ 2

Идентификатор Gaia можно получить с помощью API People, запрашивая metadata в personFields.

Вы можете попробовать это с помощью Google API Explorer (примеры ссылок приведены ниже).


Для любого из ваших контактов (если он/она является пользователем Google), используя people.connections/list:

Люди API - people.connections/список - personFields = имена, метаданные (я включил names значение в personFields для лучшей иллюстрации, хотя это не требуется, чтобы получить Id Gaia)

Пример вывода (1XXXXXXXXXXXXXXXXXXXX - идентификатор Gaia):

{
  "connections": [
    {
      "resourceName": "people/c42",
      "etag": "...",
      "metadata": {
        "sources": [
          {
            "type": "CONTACT",
            ...
          },
          {
            "type": "PROFILE",
            "id": "1XXXXXXXXXXXXXXXXXXXX",
            ...
            "profileMetadata": {
              "objectType": "PERSON",
              "userTypes": [
                "GOOGLE_USER"
              ]
            }
          }
          ....
        ],
        "objectType": "PERSON"
      }
      "names": [
        {
          ...
          "displayName": "John Doe",
          ...
        }
      ]
    },
    ...
}

Для себя или любого пользователя, использующего ресурс people/get

People API - people/get - personFields = метаданные

В поле resourceName:

  • используйте people/me чтобы получить вашу информацию.
  • используйте значение resourceName ранее полученное в запросе people.connections.list, чтобы получить информацию о других пользователях

Пример вывода (1XXXXXXXXXXXXXXXXXXXX - идентификатор Gaia):

{
  "resourceName": "people/...",
  "etag": "....",
  "metadata": {
    "sources": [
      {
        "type": "PROFILE",
        "id": "1XXXXXXXXXXXXXXXXXXXX",
        "etag": "...",
        "profileMetadata": {
          "objectType": "PERSON",
          "userTypes": [
            "GOOGLE_USER"
          ]
        }
        ...
      },
     ...
    ],
    "objectType": "PERSON"
  }
}