如何从用户那里获取真实大小的个人资料图片?

3

拥有用户ID xUID,我知道可以通过以下方式获取其个人资料照片:

http://graph.facebook.com/xUID/picture?type=large

问题在于从该URL返回的照片不是真实尺寸(大约只有200像素宽)。

我需要获取该用户的真实尺寸照片。

目前为止我已经做了以下工作:

1. 获取用户相册

https://graph.facebook.com/me/albums?access_token=xToken

2. 在此基础上迭代,并获取类型为“profile”的相册。

3. 使用相册ID(xAID)构建FQL查询:

SELECT pid, object_id, src_big FROM photo WHERE album_object_id = xAID

4. 获取那里的个人资料图片。

5. 我需要迭代并找到用户上传的最后一个图片。

因此,这个过程是复杂且耗时的。是否有更好/更简单/更快的方法来完成这个任务呢?

非常感谢!

5个回答

9

在请求图片之前,如何确定图片的真实尺寸? - santiagobasulto
我相信目前720x720是最大的尺寸。如果你想提前知道尺寸,可以使用这个链接:http://developers.facebook.com/tools/explorer/?method=GET&path=me%3Ffields%3Dpicture.width%28162%29.height%28159%29并指定你想要的最小尺寸。 - Joakim Syk
谢谢,我已经寻找这个东西几天了。 - Long Le

1
您只需要执行一个FQL查询:
SELECT pid, object_id, src_big
FROM photo 
WHERE object_id IN 
  (SELECT cover_object_id 
   FROM album 
   WHERE owner=me() AND type="profile")

src_big 将包含指向个人资料原始来源的链接。 如果您需要获取特定用户的个人资料图片,请将 me() 替换为特定用户 ID。


0

好的,我刚按问题所说做了。浏览相册并从中获取第一张个人资料照片。

Julio 的答案不可行,因为在 WHERE 子句中不能包含“type”,因为它不是可索引的列。


0

封面照片也不总是最近的照片,可能是几天前的。


-1
获取封面对象 ID:
fql?q=SELECT cover_object_id, type FROM album WHERE owner="userid" AND type="profile"
获取 src_big:
fql?q=SELECT pid, object_id, src_big FROM photo WHERE object_id="上面获取的封面对象 ID"
img src="上面获取的 src_big"
这有什么帮助吗?

你不能在“where”子句中使用“type”,因为它不是一个可索引的列。 - santiagobasulto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接