8

我曾经通过这个 URL 获取用户图像

https://plus.google.com/s2/photos/profile/(user_id)?sz=150

但现在我得到的只是 404 错误或没有图像。我知道谷歌已经改变了它的政策和连接方式,并允许其他人获取信息,但我没有达到与上述相同的结果。

注意:我不能在这里使用身份验证的东西,因为我正在向其他根本没有连接的用户显示用户的图像。

或者以其他方式,用户可能不是来自谷歌登录,但我只需要显示其他谷歌用户图像。

任何帮助将不胜感激!!!

编辑: 我已经检查了 people.get 方法

https://www.googleapis.com/plus/v1/people/11595...3592320?key=AIzaSyCkdmtNN1XDg....EpepOIIs

但我收到错误消息

{
   "error": {
     "errors": [
        {
          "domain": "usageLimits",
          "reason": "accessNotConfigured",
          "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
        }
     ],
   "code": 403,
   "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
  }
}

编辑:我已经启用了这个,因为我已经在我的网站中使用 Google+ 登录,这里我附上截图:

Google+ API 已启用

4

2 回答 2

20

早些时候,经过大量研究和努力,我的网站也遇到了同样的问题,我从自己那里找到了解决方案,我希望这也对您有用并解决您的问题:

老把戏

谷歌已经改变了他们的政策,所以获取谷歌个人资料图片的旧技巧现在不起作用了。

例如https://plus.google.com/s2/photos/profile/(user_id)?sz=150

新把戏

获取请求:

https://www.googleapis.com/plus/v1/people/115950284...320?fields=image&key={YOUR_API_KEY}

响应:200 OK

{
    "image": 
    {
         "url": "https://lh3.googleusercontent.com/-OkM...AANA/ltpH4BFZ2as/photo.jpg?sz=50"
    }
}

其中YOUR_API_KEY是您的公共 API 访问密钥,它是通过https://console.developers.google.com/的API 和 Auth下的凭据生成的

并且在创建公共 API 访问密钥时,您可以选择应从中发出此请求的引用URL,但为了检查,您应该尝试不向其添加任何 URL,如果它有效,则使用您网站的 URL。

您可以从此处选择其他字段与您可能需要的 URL 一起发送。

快乐编码!!!

于 2014-03-20T07:24:40.213 回答
9

您可以使用people.get Google+ API 调用并指定您想要获取信息的用户的用户 ID 来获取此信息。这将包括一个image.url您可以根据需要使用和调整大小的字段。

由于这是用户的公共信息,因此您无需用户进行身份验证即可访问它。但是,您确实需要一个 API 密钥,将其添加到 API 调用中使用的 URL 的末尾。

您可以通过访问https://console.developers.google.com/在“API 和身份验证”部分和“凭据”小节下获取 API 密钥。然后,您可以单击“公共 API 访问”下显示“创建新密钥”的按钮。

您将用于获取信息的 URL 类似于

https://www.googleapis.com/plus/v1/people/1234567890?key=api_key

你会得到一个带有配置文件信息的 JSON 对象。

更新:确保您还在开发控制台中启用了 Google+ API。您可以通过https://console.developers.google.com/在“APIs and auth”部分和“API”小节下找到该列表中的“Google+ API”并将其打开。

于 2014-03-14T15:17:28.043 回答