为什么这个FQL没有为某些用户返回个人资料图片?

时间:2011-03-16 23:08:25

标签: facebook actionscript-3 facebook-graph-api facebook-fql

这个FQL来自一个已经运行了几天的应用程序,并且已经过全面测试:

SELECT src_big FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner = {uid} AND type = 'profile')

我正在使用从ActionScript桥接的JS API,并且{uid}部分被替换为与在朋友浏览器中单击的列表项对应的任何uid。问题在于,大多数情况下这个查询工作得很好,很好,返回大图像(虽然通常不是一组完整的匹配配置文件图像),但在某些情况下,查询根本不返回任何内容,只是一个空数组。检查用户的个人资料图像相册确认有大量图像可供选择。任何人都知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

可能是因为该用户设置了隐私设置,因此您无法访问他们的个人资料照片。

答案 1 :(得分:1)

这是因为如果您按照users.getInfo表中的建议导航到user方法,某些字段对公众可见而其他字段需要权限。您可以找到可以为任何用户查询的 public 字段列表:

  • UID
  • 如first_name
  • middle_name
  • 姓氏
  • 名称
  • 区域设置
  • CURRENT_LOCATION
  • 附属机构(仅限地区类型)
  • pic_square
  • PROFILE_URL

现在查询album表很可能在用户未授予您权限的情况下不返回任何内容,但值得尝试以下操作:

SELECT pic_big FROM user WHERE uid={uid}

如果它不起作用,那么您可能需要坚持上面列表中的pic_square

另外值得注意的是,所有pic字段都可能为空:

  

pic_big 最大尺寸的网址   用户的个人资料图片   查询。图像可以有最大值   宽度为200px,最大高度为   600px的。 此网址可能为空

这适用于user表中提到的所有照片。

重要提示:
在没有图像返回的情况下使用后备图像(通用图像)总是一个好习惯!