Google用户照片API-未经认证即可获取公共用户照片

时间:2019-01-14 10:02:58

标签: google-api google-plus

到目前为止,我们一直使用Google Plus API来获取用户的公开照片。 我们所需要做的就是获取照片(as described here)的用户ID。

现在不建议使用此API和Picasa API,我发现的唯一替代方法是使用Users.photos API(as described here)。

您会在说明中看到,此API需要授权,尽管已弃用的API不需要授权,而且我希望获得的照片是公开的。并非我们所有的用户都使用Google登录,但是我希望能够向所有人展示使用Google登录的用户的公开照片。现在有什么办法吗?

1 个答案:

答案 0 :(得分:4)

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

您需要确切要求您要哪些字段。 “名称”和“照片”字段可能是对您最重要的字段,但还有其他可用的字段。您将获得一个可能值的数组,每个值指示其来源。您可能会想要“ PROFILE”的源类型,但是您当然可以评估其他类型。

因此,如果您发出的请求是

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

您将要求提供我的公开个人资料。您将获得类似

的响应
{
 "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"
  }
 ]
}