hello-world
webエンジニアのメモ。とりあえずやってみる。

[rails]omniauth-twitterで大きいサイズ(bigger)のプロフィール画像を取得する

公開日時

ruby2.1, rails4.1.1で確認 omniauth-twitterを使ってtwitter認証を行った際にプロフィール画像を取得したかったのですが、デフォルト設定だと、auth['info']['image'] に入ってくる画像URLの画像サイズが小さいので、大きい画像を取得するようにしました。

initializerの引数にハッシュで画像サイズを指定すると大きいサイズで取得できるようになりました。

  • onfig/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter,
    Rails.application.secrets.twitter_api_key,
    Rails.application.secrets.twitter_api_secret,
    {
      secure_image_url: 'true',
      image_size: 'bigger'
    }
end

mini(24x24), normal(48x48), bigger(73x73), original(アップロード時のサイズ)の4種類が指定できるようです。

詳細は公式ドキュメントをご確認ください。

omniauthではなく twitter gemの場合は

user = client.user('hilotter')
user.profile_image_url.to_s.sub('normal', 'bigger')

としてsubで置換すれば大きいサイズの画像が取得できます。(omniauth-twitterも内部で同じ処理が書かれていました)

参考


Related #OmniAuth

[Rails]Omniauthで戻り先URLを指定する

Ruby2.0, Rails4.1で確認

[ruby]OmniAuth利用時に Authentication failure! timeout: Net::OpenTimeout, execution expired が発生

OmniAuthを使ったTwitter認証機能を試していた際に、

RailsでOmniauthを使ってTwitterログインする

Ruby2.0, Rails4で確認

OmniAuthで認証した後に、tweetしたりfollowしたりする

昨日、 RailsでOmniauthを使ってTwitterログインする方法をまとめました。