【问题标题】:Facebook Graph API doesn't return profile image for one pageFacebook Graph API 不返回一页的个人资料图片
【发布时间】:2013-01-10 22:21:38
【问题描述】:

抱歉,作为新用户,我只能包含 2 个 URL,所以我不得不节省开支。

我遇到了一个问题,Facebook 的 Graph API 中的用户对象没有正确返回个人资料图像。我只能找到这个问题的一个案例。对于我测试过的所有其他用途,它似乎工作正常。个人资料图片似乎没有任何隐私设置,因为我可以从个人资料页面正常查看它。

我正在使用 Facebook 的 Graph API 通过将此 URL 放入 IMG 标签来加载用户/页面的个人资料图片:

https://graph.facebook.com/[profile-id]/picture?type=square

这适用于我在测试期间发现的所有情况,包括页面和用户。但是,对于我们在页面上部署应用程序的用户之一,URL 正在加载问号图像,就好像该页面没有个人资料图像一样。他们的页面显然有个人资料图片,您可以在此处看到:

http://www.facebook.com/EgansRestaurantPub

但是,如果您点击进入 Egan 的日历选项卡,您会看到问号图像。图片网址如下,返回问号:

https://graph.facebook.com/400488613342471/picture?type=square

我已使用以下链接格式检查了 ID,以确保它是页面的正确 ID:

http://www.facebook.com/pages/[anything]/400488613342471

我的第一个理论是个人资料图片上有隐私设置,但我的个人帐户(作为页面的非粉丝)能够查看个人资料图片。我唯一的另一个想法是,这可能是因为该页面使用了一个不包含页面 ID 的短 URL (EgansRestaurantPub)。对于类似的页面,我发现使用以下方法有效:

[graphurl]/可口可乐/图片

[graphurl]/宝马/图片

但是当我的客户页面使用相同的方法时,它仍然返回一个问号。

有谁知道为什么这没有返回此页面的个人资料图片?这是我发现此问题的唯一页面。

我正在使用 PHP SDK 和一些 JS SDK。我宁愿避免再次调用会延迟加载页面的 API。这就是为什么我喜欢能够将 URL 直接放入 IMG 标记的原因。但是如果没有其他办法,我会再打一个电话。

【问题讨论】:

    标签: url facebook-graph-api facebook-page


    【解决方案1】:

    user 文档(图片字段)中似乎有某种限制:

    access_token 对于具有白名单/定位的页面是必需的 限制,否则不需要access_token

    你只需要提供一个用户access_token 就可以了:

    https://graph.facebook.com/400488613342471/picture?type=square&access_token=XXX
    

    要对此进行测试,您可以直接从Access Token Tool 获取access_token。

    【讨论】:

    • 是的。该页面的所有者似乎在该页面上设置了年龄和/或国家/地区限制,可能是通过将其标记为“与酒精有关”。您只能使用符合条件的用户访问令牌访问页面内容。我会向所有者发送消息并要求他们取消此限制。
    • 感谢两位的帮助。通过将年龄限制设置为“酒精相关”,我能够在测试页面上重现此问题。我还没有让 access_token 正常工作,但我会报告成功/失败。
    • PHP SDK 中的 BaseFacebook->getAccessToken() 可以正常工作。我不确定如果访问令牌用于不符合年龄限制的用户会发生什么,但我想他们无论如何都不应该查看该页面。再次感谢。
    • 为什么需要对图片有特殊要求? FB必须为/me请求返回一张图片,因为它默认是public_profiledevelopers.facebook.com/docs/facebook-login/permissions
    猜你喜欢
    • 1970-01-01
    • 2018-03-19
    • 2014-06-03
    • 2012-01-16
    • 2014-06-24
    • 2015-05-02
    • 2016-05-22
    • 1970-01-01
    相关资源
    最近更新 更多