检索用户的公共google/gmail图片

sha*_*ish 34 google-plus gmail-api

我正在使用gmail-api编写基于电子邮件的应用程序,我需要检索来自谷歌的电子邮件地址的用户公共图像.我已经看到其他应用程序这样做,但我似乎无法可靠地获取此数据.

更多信息:

  • 我正在使用oauth2来签署用户 - 我在那里请求任何类型的权限都没有问题.
  • 我尝试使用google + api检索图像 - 但它需要一个userID - 我不知道如何获取userId的电子邮件地址(gmail-api不给它,afaik).
  • 我尝试使用联系人API - 但它只为用户的联系人提供图像,而电子邮件客户端也可以显示其他用户的图像.

谢谢!

编辑:

我知道如果我有其他用户的用户ID,我可以从谷歌加上获得所需的图像.但是,我找不到基于电子邮件地址获取用户标识的方法.

jos*_*405 63

很容易

http://picasaweb.google.com/data/entry/api/user/<hereYourUserIdOrYourEmail>?alt=json

只是有一点问题.

您只能直接通过Gmail获取Google+个人资料的图片.

更新:

此API已弃用,将于2019年1月停用.尽快迁移到Google相册库API,以避免中断您的应用.

信息在这里

迁移指南

  • 如何使用新的API? (2认同)

epo*_*ool 19

更新:

此API已弃用,将于2019年1月停用.尽快迁移到Google相册库API,以避免中断您的应用.

信息在这里

根据@ jose920405的答案,我编写了这个名为Pikmail API的免费公共API服务.这里有一些优点.

  • 无需身份验证.
  • 它是完全免费和开源的.
  • 它是用Kotlin写的.
  • 您不需要编写一些用于映射响应的包装器.

这是关于Pikmail API如何在内部工作的博客文章.

用法:

HTML

<img src="https://pikmail.herokuapp.com/eduardo.alejandro.pool.ake@gmail.com?size=50" alt="Profile Picture">
Run Code Online (Sandbox Code Playgroud)

个人资料图片

Java Android

Picasso.with(context).load("https://pikmail.herokuapp.com/eduardo.alejandro.pool.ake@gmail.com?size=50").into(imageView);
Run Code Online (Sandbox Code Playgroud)

随意贡献与你拉的请求,开放的错误或要求新的功能在这里.

注意:此服务基于一个名为Pikmail的独立库,可以在Java项目(服务器或Android应用程序)中用作Gradle依赖项.


Jam*_*mes 5

Google+是执行此操作的正确方法.这实际上与Gmail API无关.您不需要用户的用户ID,只需要具有适当范围的有效访问令牌.

https://www.googleapis.com/plus/v1/people/me?access_token=YOUR_ACCESS_TOKEN_HERE

除非存在错误/无效令牌/ etc,否则这将返回一组有关用户的信息作为JSON.此数据中包含用户配置文件图像的URI.

编辑:

要根据电子邮件地址获取用户的个人资料照片,请先搜索该用户

https://www.google.com/m8/feeds/contacts/default/thin?q=EMAIL_ADDRESS_HERE

然后,您可以从返回的JSON中检索该用户的正确用户ID,并使用它来获取配置文件图像.

  • 这是为了获取当前登录用户的图像 - 没有问题.但我需要获得其他用户的形象. (4认同)