Ahmad Al-kheat
Ahmad Al-kheat

Reputation: 1795

devise+omniauth_facebook how to get a large facebook picture

I am using devise_omniauth facebook to retrieve the users picture from facebook, all works fine, I just want to get a bigger picture, I already read many similar questions, but they all provide URLs which I find not convenient. Here is my user.rb :

def self.from_omniauth(auth)
        where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
            user.email = auth.info.email
            user.password = Devise.friendly_token[0,20]
            user.name = auth.info.name
        user.image_string = auth.info.image
        end
    end

Any suggestions ?

Upvotes: 2

Views: 742

Answers (1)

Raza
Raza

Reputation: 2390

You can set the default size for image in config/initializers/omniauth.rb as,

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], :image_size => 'large'
end

just to mention, facebook provides 4 sizes of images small, square, large, normal

If you are using devise, check in your config/initializers/devise.rb

 Devise.setup do |config|
...
  config.omniauth :facebook,  ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], :image_size => 'large'
...
end

Upvotes: 10

Related Questions