1

我正在像这样从 Facebook 检索数据。我想获得特定宽度和高度的图像,我该怎么做?

class User < ActiveRecord::Base
  attr_accessible :password, :username, :oauth_token, :provider, :uid, :oauth_expires_at, :picture, :email, :name

def self.from_omniauth(auth)
  where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
    user.provider = auth.provider
    user.uid = auth.uid
    user.name = auth.info.name
    user.username = auth.extra.username
    user.email = auth.info.email
    user.picture = auth.info.image
    user.oauth_token = auth.credentials.token
    user.oauth_expires_at = Time.at(auth.credentials.expires_at)
    user.save!
end
end
end
4

2 回答 2

0

下载后,您可以使用蜻蜓图像来播放图像,或使用 css 在页面上以不同大小显示图像。

于 2013-05-06T23:34:30.293 回答
0

解决方案

您可以在 devise.rb 中设置以下属性:

  provider :facebook, ENV['APP_ID'], ENV['APP_SECRET'],
    scope: 'email,user_birthday,read_stream', image_size: 'large'

image_size 的选项如下,我引用了 Facebook Omniauth 的 Wiki。链接如下。

要将图像设置为特定大小,我将使用 Css 属性高度,此外,您需要删除帐户重新启动服务器以获取新大小格式的图像链接,因为 def self.from_omniauth(auth)仅在用户调用创建帐户。

在 auth 哈希中设置返回的图像 url 的大小。有效选项包括方形 (50x50)、小(50 像素宽,可变高度)、正常(100 像素宽,可变高度)或大(大约 200 像素宽,可变高度)。此外,您可以通过将此选项设置为以 :width 和 :height 为键的哈希来请求特定大小的图片。这将返回最接近请求大小和请求纵横比的可用个人资料图片。如果只指定 :width 或 :height ,我们将分别返回宽度或高度最接近请求大小的图片。

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

于 2017-02-10T18:00:20.993 回答