- user_info_mapping に
remote_{カラム名}_url
をセット - user_info_path の fields に
picture.type(large)
を入れる
models/user.rb
class User < ApplicationRecord
authenticates_with_sorcery!
mount_uploader :icon, IconUploader
config/initializers/sorcery.rb
config.facebook.user_info_mapping = {email: 'email', nickname: 'name', remote_icon_url: 'picture/data/url'}
config.facebook.user_info_path = "me?fields=email,name,picture.type(large)"
Sorcery の external モジュールで Facebook 認証をした段階でプロフィール画像を保存したい時用のメモ。
CarrierWave は remote_{カラム名}_url
でURLからファイルをダウンロードしてセットすることができるので、Sorcery の external モジュールで保存する場合もこの形式でマッピングすればいい。Facebookから取得できるプロフィール画像はデフォルトではあまりにも小さすぎるため、user_info_path の picture フィールドに picture.type(large)
を指定すると、実用的なサイズの画像を取得することができる。