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

goo*_*ool 3 google-api google-plus

到目前为止,我们使用Google Plus API来获取用户的公开照片。我们需要的只是获取照片的用户ID(如此处所述)。

现在已不推荐使用此API和Picasa API,我发现的唯一替代方法是使用Users.photos API(如此处所述)。

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

Pri*_*ner 6

您可以使用people.getGoogle People API方法仅使用用户ID来获取所需的信息。尽管您可以在没有用户令牌的情况下获取公共信息,但是您需要一个API密钥。如果信息不是公开的,您也将无法获得。

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

因此,如果您发出请求

GET https://people.googleapis.com/v1/people/101852559274654726533?personFields=names%2Cphotos&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

您将要求提供我的公开个人资料。您会收到类似的回复

{
 "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"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)