如何从谷歌GAIA ID中查找用户信息?

2022-08-31 00:58:04

我一直在为Google的Takeout服务开发Hangouts.json解析器,该解析器从json文件中获取所有对话,附件和杂项信息,并用所有内容填充数据库。我已经完成了所有工作,但json文件为谁发送了GAIA ID提供的唯一信息是我已经能够弄清楚的是Google在其服务之间使用的唯一ID。问题是我不知道如何查找有关用户的任何其他信息,例如他们识别的名称或电子邮件。

我知道大多数信息都是公开的,因为你可以把GAIA ID放到一个URL中,比如:其中#是GAIA ID。此页面将公开显示其屏幕名称。当电子邮件地址未知时,可以通过使用来推断同样的事情:也可以使用它来联系他们。https://plus.google.com/u/0/#####################/aboutreply-#####################@profiles.google.com

理想情况下,我希望能够查找用户的屏幕名称,而不必至少解析该公共Google+页面,但真正的电子邮件也会很棒。因此,理想情况下,我希望API或其他资源能够从GAIA ID查找屏幕名称和/或电子邮件信息。


答案 1

重要更新

2019年3月:这个答案仍在投票中,但是Google正在撤回/已经撤回Google Plus API。

您将需要一个替代解决方案,因为这将不再适用。

原始回复

使用 Google Plus API: https://developers.google.com/+/api/

我没有专门使用Hangouts进行测试(我从来不知道有Hongouts API!),但它返回了来自其他API的ID的详细信息。

你可以在这里测试一下:https://developers.google.com/apis-explorer/#p/plus/v1/plus.people.get 看看你会得到什么。


答案 2

Gaia ID 可以通过人员 API 获取,方法是在 .metadatapersonFields

您可以使用Google API资源管理器进行尝试(下面提供了示例链接)。


对于您的任何联系人(前提是他/她是谷歌用户),请使用以下资源:people.connections/list

People API - people.connections/list - personFields=names,metadata(为了更好地说明,我已经在 中包含了该值,尽管不需要检索 Gaia Id)namespersonFields

示例输出(是盖亚 Id):1XXXXXXXXXXXXXXXXXXXX

{
  "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

人员 API - 人员/获取 - 人员字段=元数据

在现场 :resourceName

  • 用于获取您的信息。people/me
  • 使用先前在请求中检索到的值来检索其他用户信息resourceNamepeople.connections.list

示例输出(是盖亚 Id):1XXXXXXXXXXXXXXXXXXXX

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

推荐