21

Ich möchte das Userprofil grosses oder normales Bild von Facebook bekommen. Jetzt bekomme ich die quadratische Version vom Benutzerprofilbild mit diesem Code:Userprofil grosses Bild von facebook mit omniauth in devise 2.0

:image => access_token.info.image 
# http://graph.facebook.com/id/picture?type=square 

Wie kann ich die großen oder normalen Versionen erhalten? das letzte Wort, groß statt quadratisch ...

Vielen Dank

Oder und die App, Wie kann ich in dieser URL ersetzen!

Antwort

26

Unten sind die 4 verschiedenen Größen von Profilbildern, die von Facebook erlaubt sind.

http://graph.facebook.com/id/picture?type=small 
http://graph.facebook.com/id/picture?type=square 
http://graph.facebook.com/id/picture?type=large 
http://graph.facebook.com/id/picture?type=normal 
+0

Danke, aber ich weiß, dass diese 4 unterschiedliche Größe der Profilbilder. Meine Frage ist, dass ich quadratische Version von Daten Facebook erhalte, und ich möchte in meiner Schiene App auch andere 3 Versionen verwenden. Vielen Dank! – hyperrjas

+1

ja verwenden Sie diese http://graph.facebook.com/id/picture?type=square für großes Bild – vishnu

+0

dies sagt Ihnen die Größen, aber löst nicht wirklich das Problem –

31

Wenn Sie eine andere Größe Bild bei der Anmeldung greifen wollen, die omniauth-Facebook-Strategie hat eine Option zu ändern, welches Bild angefordert wird.

image_size: Legen Sie die Größe für die zurückgegebene Bild-URL im Auth-Hash fest.

Zum Beispiel das große Bild würde auf diese Weise in omniauth.rb angefordert werden:

provider :facebook, 'secrets', 'sekrets', :image_size => 'large' 

https://github.com/mkdynamic/omniauth-facebook#configuring

+2

Vielen Dank Ich habe dieses Update für mich in meiner Datei devise.rb überprüft, aber es funktioniert nicht gut für mich :(. Ich erhielt quadratische Version. Ich benutze devise 2.0 mit omniauth-facebook (1.2.0) gem! – hyperrjas

+1

Dies ist die richtige Antwort auf diese Frage! Upvote Leute! :) –

+0

Beste Antwort von allen! –

4

Wenn Sie es in den DB speichern Sie es wie folgt access_token.info.image.split("=")[0] << "=large"

tun könnte

und ändern Sie einfach groß zu welcher Größe Sie wollen.

Oder Sie könnten eine Hilfsmethode haben, um verschiedene Größen in Ihren Ansichten anzuzeigen.

2

Anstatt die Konfigurationsdatei zu ändern, habe ich einfach + "?type=large" zur URL hinzugefügt.

<%= image_tag current_user.image + "?type=large" %>

so können Sie jederzeit verschiedene Größen von ihm verlangen.

<%= image_tag current_user.image + "?type=normal" %>

<%= image_tag current_user.image + "?type=small" %>

Verwandte Themen