Google 用户照片 API - 无需验证即可获取 public 用户照片

Google Users photos API - get the public user photo without authenticating

到目前为止,我们使用 Google Plus API 来获取用户的 public 照片。 我们所需要的只是获取照片的用户 ID (as described here)。

现在这个和 Picasa APIs 都被弃用了,我发现唯一的选择是使用 Users.photos API (as described here).

正如您在描述中看到的那样,这个 API 需要授权,尽管已弃用的 API 不需要授权,而我希望获得的照片是 public。并非我们所有的用户都使用 Google 登录,但我希望能够向所有人展示使用 Google 登录的用户的 public 照片。现在有什么办法吗?

您可以使用 people.get method of the Google People API 仅通过用户 ID 获取您需要的信息。虽然您可以在没有用户令牌的情况下获得 public 信息,但您 需要一个 API 密钥。如果不是 public,您也将无法获取信息。

您需要准确请求您想要的字段。 "names" 和 "photos" 字段可能是对您最重要的字段,但还有其他字段可用。您将获得一组可能的值,每个值都指示其来源。您可能需要 "PROFILE" 的源类型,但您当然可以评估其他类型。

因此,如果您使用

发出请求
GET https://people.googleapis.com/v1/people/101852559274654726533?personFields=names%2Cphotos&key={YOUR_API_KEY}

您将要我的 public 个人资料。你会得到类似

的回复
{
 "resourceName": "people/101852559274654726533",
 "etag": "%EgYBAj0DNy4aDAECAwQFBgcICQoLDA==",
 "names": [
  {
   "metadata": {
    "primary": true,
    "verified": true,
    "source": {
     "type": "PROFILE",
     "id": "101852559274654726533"
    }
   },
   "displayName": "Allen “Prisoner” Firstenberg",
   "familyName": "Firstenberg",
   "givenName": "Allen",
   "displayNameLastFirst": "Firstenberg, Allen"
  }
 ],
 "photos": [
  {
   "metadata": {
    "primary": true,
    "source": {
     "type": "PROFILE",
     "id": "101852559274654726533"
    }
   },
   "url": "https://lh5.googleusercontent.com/-RDndFau_En4/AAAAAAAAAAI/AAAAAAAB8CY/sTL9kJMmIgk/s100/photo.jpg"
  }
 ]
}