2014-12-25 5 views

Antwort

5

people.get enthält einen isDefault Wert im Bildobjekt. Z.B. Wenn Sie es für +Google versuchen, erhalten Sie;

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

Alle Standardprofilbilder haben die folgende URL:

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

Sie können nur Zeichenfolge Gleichheit der Profilbild mit dem gegebenen vergleichen.

0

in Ruby mit devise und omniauth-google-oauth2

in Ihrem devise.rb

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

dann in Ihrem user.rb/anderen Ort:

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 
0

Der beste Weg, Um dies in vollem Umfang zu tun:

require 'open-uri' 

Bild Default:

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

Bild zu überprüfen:

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

Vergleich überprüfen

blob_for_default_image = open(default).read 

blob_for_image_to_check = open(image_to_check).read 

Dann Sie die 2 Bild Blobs vergleichen:

blob_for_default_image == blob_for_image_to_check 
Verwandte Themen