【问题标题】:Determine if user's Facebook image is the default with Omniauth使用 Omniauth 确定用户的 Facebook 图像是否为默认值
【发布时间】:2012-07-18 03:08:54
【问题描述】:

我正在获取用户的 Facebook 图片:

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 更改其默认图像,一切都会失败。有什么标志可以告诉我用户是否设置了图像?

【问题讨论】:

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


【解决方案1】:

使用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
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 2012-12-15
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多