Как искать информацию о пользователе из идентификатора 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"
}
}