如何检索用户信息和大图像

时间:2012-10-14 10:27:22

标签: android facebook facebook-fql inner-join

对于Android应用,我正在尝试使用FQL在Facebook上获取特定用户的某些信息(使用其用户ID),并获得用户的高质量图像。

这意味着我必须同时使用“用户”表和“照片”表。

目前,查询是:

SELECT first_name, last_name, status, current_location, uid, pic_square, pic_big, website, work, email, contact_email, current_location, sex, birthday_date 
FROM user 
WHERE uid in (%s) order by name

SELECT src_big,owner 
FROM photo 
WHERE aid IN (SELECT aid FROM album WHERE owner=%s AND type=\"profile\") LIMIT 1

第一个返回指定用户的所有信息,第二个返回单个用户的src_big。是否可以进行内部联接并在单个查询中执行它们?

编辑:

似乎FQL仍然无法实现内连接。但是,我仍然想问一下:如何更改第二个FQL语句以显示多个结果,如第一个FQL语句中所使用的那样?

2 个答案:

答案 0 :(得分:0)

是的,FQL多重查询不允许您在结果中为每个用户选择一个项目。您的第二个查询只会给您一个项目。您需要从FQL中获取所有用户的所有照片,然后在您的应用中过滤它们,或者为每个用户单独调用API。

您可以使用field expansion使用Graph API执行此操作。您的查询端点将是:

 /?ids=UID_1,UID_2,...,UID_n&fields=name,id,...,photo.limit(1)

由于您使用的是fields参数,因此您需要在结果中单独声明所需的每个字段。

答案 1 :(得分:-2)

当然你可以加入两个表,使用user.uid = photo.owner(如果正确)作为绑定条件。