如何检查Google用户的图片是默认图片还是上传图片?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查Google用户的图片是默认图片还是上传图片?相关的知识,希望对你有一定的参考价值。

如何检查用户的个人资料图片是默认的还是在Google上传?

注意:从API获取用户详细信息时。

答案

people.get在图像对象中包含isDefault值。例如。如果你为+Google尝试它,你会得到;

"image": {
    "url": "https://lh4.googleusercontent.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAACyas/yR1_yhwBcBA/photo.jpg?sz=50",
    "isDefault": false
}
另一答案

所有默认配置文件图片都具有以下URL:

https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg

您可以只比较配置文件图片的字符串相等性。

另一答案

people.get不再将isDefault作为属性。 https://developers.google.com/+/web/api/rest/latest/people#resource

另一答案

在红宝石与设计和omniauth-google-oauth2

在你的devise.rb

config.omniauth :google_oauth2 (Other options....), skip_image_info: false

然后在你的user.rb /其他地方:

def self.parse_auth_image(auth)
  if auth.provider == "google_oauth2"
    return nil if auth.dig("extra", "raw_info", "image", "isDefault")
  end
  auth.info.image
end
另一答案

在完整细节中执行此操作的最佳方法:

require 'open-uri'

默认图片:

default = "https://lh3.googleusercontent.com/-
XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg"

要检查的图像:

image_to_check = "https://lh3.googleusercontent.com/-
uh4wK1JDtCI/AAAAAAAAAAI/AAAAAAAAAAA/huieBSbV4zg/s64-
c/100695019739939096169.jpg"

比较检查

blob_for_default_image = open(default).read

blob_for_image_to_check = open(image_to_check).read 

然后你比较2图像blob:

blob_for_default_image == blob_for_image_to_check 

以上是关于如何检查Google用户的图片是默认图片还是上传图片?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看 GoogleSignIn 用户上传的图片或谷歌设置的默认图片

微信图片上传 wx.Imagechoose

微信小程序选择并上传图片

我在百度空间里上传照片时不能显示缩略图,而上传完以后不能显示文件名(我用的是IE7),请问如何解决?

小程序封装多张图片上传api

获取上传图片的像素大小