devise + Facebook omniauth で取得したimageが大きくならない対処法

1日中この問題で手こずっていたので今後のためにとりあえずメモしておく。

Defaultのサイズは50 ✕ 50(Square) だが、 どうしても大きくしたい!
class をつけて css でwidthを調節してあげても画像がぼやけてしまう。

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

Devise.setup do |config|
...
  config.omniauth :facebook,  ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], :image_size => 'large'
...
end
参照元: https://stackoverflow.com/questions/27674430/deviseomniauth-facebook-how-to-get-a-large-facebook-picture

上記のやり方を試したが全く効果なし。

2017年12月現在、 まだこれといった解決法がない。

https://github.com/mkdynamic/omniauth-facebook/issues/188


そこでこのような記事を発見。

Facebook API は画像をurlで送ってきているので、 最後の ?type= 部分を変えてあげれば良い。


最終的にこのようにした。

  • <%= image_tag current_user.image + "?type=large" %>
こちら参考です。

http://quickrails.com/get-user-profile-large-picture-from-facebook-with-omniauth-in-devise-2-0/

configをいじってあげるといろいろカスタマイズできるので、 何かいい方法がある方がいたらコメントをお願いします。

コメント