确定用户的Facebook图像是否是Omniauth的默认图像

时间:2012-07-19 00:20:15

标签: ruby-on-rails facebook facebook-graph-api omniauth

我通过以下方式获取用户的脸书图片

https://graph.facebook.com/#{omniauth.uid}/picture?type=large

但是我如何检查这是否是Facebook默认图像?如果是,我有自己想要使用的图像。

我正在使用Ruby on Rails和Omniauth。因此,如果Omniauth提供任何有助于这种情况的事情,请告诉我。

更新

当我使用上面的链接进入我自己的页面,但是我的用户ID,如果我没有设置个人资料图像,我会被重定向到此文件。

https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yL/r/HsTZSDw4avx.gif

我有一个朋友也检查,他得到了相同的页面。

所以我可以“暂时”检查该文件名,但显然这将是一个可怕的做法。如果Facebook更改其默认图像,则一切都会失败。是否有任何标志告诉我用户是否有图像设置?

1 个答案:

答案 0 :(得分:4)

使用is_silhouette布尔值。来自文档:

  

您可以向HTTP请求添加redirect = false以获取位置而不是实际数据。这个电话:

<img src="https://graph.facebook.com/shaverm/picture?redirect=false"/>
  

将返回描述图片位置的JSON编码数据。 url是图像的位置,is_silhouette布尔值表示对象是否设置了图片。

{
    "data": {
        "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/372183_100002526091955_998385602_q.jpg",
        "is_silhouette": false
    }
}