21

私はfacebookからユーザーのプロフィールを大きくまたは普通の画像にしたいと思う。今度は、このコードでユーザープロフィールの画像から正方形のバージョンを取得します。ユーザープロフィールを取得するomniauth with omniauth with大きな画像2.0

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

大きなバージョンまたは標準バージョンを入手するにはどうすればよいですか?

かとアプリが、私はこのURLに置き換えることができますどのように代わりに正方形の大きな最後の言葉、...

はどうもありがとうございました!

答えて

26

以下は、Facebookで許可されているプロフィール写真の4種類のサイズです。

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

ありがとう、私はプロフィール写真のこの4つの異なるサイズのことを知っています。私の質問は、私はデータのFacebookから正方形のバージョンを受け取り、私は私のレールアプリでも他の3つのバージョンを使用したいです。ありがとうございました! – hyperrjas

+1

これはhttp://graph.facebook.com/id/picture?type=square 大きい画像 – vishnu

+0

のためにこれはあなたにサイズを教えますが、実際には問題を解決しません –

31

あなたはログイン時に異なるサイズの画像を取得したい場合は、omniauth-のFacebook戦略が要求されている画像に変更するオプションがあります。

image_size:authハッシュで返される画像URLのサイズを設定します。例えば、大きな画像がomniauth.rbにこの方法を要求されるだろう

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

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

+2

私のdevise.rbファイルでこの修正をチェックしましたが、それはうまく動作しません:(私は正方形のバージョンを受け取りました。 omn​​iauth-facebook(1.2.0)gem! – hyperrjas

+1

これはこの質問に対する適切な答えです!Upvote people!:) –

+0

すべてのベスト回答! –

4

あなたがDBにそれを保存すると、あなたがこのaccess_token.info.image.split("=")[0] << "=large"

ようにそれを行うことができます

とあなたが望む任意のサイズに大きく変更します。

また、ビューにさまざまなサイズを表示するためのヘルパーメソッドを使用できます。

def profile_photo(type="large") 
    puts @user.image.split("=")[0] << "=#{type}" 
end 

profile_photo("small") #=> http://url?type=small 

profile_photo("square") #=> http://url?type=square 

profile_photo #=> http://url?type=large 

profile_photo("normal") #=> http://url?type=normal 
2

設定ファイルを変更する代わりに、私はちょうど+ "?type=large"をURLに追加しました。

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

ので、いつでもの異なるサイズを要求することができます。

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

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

関連する問題