如何检查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 用户上传的图片或谷歌设置的默认图片