我已经尝试使用 FQL 和 Graph API 来完成此操作。
我首先尝试了这个 FQL 调用:
$fql = "SELECT pic, src_big FROM photo WHERE pid IN (SELECT pid FROM photo_tag WHERE subject = me())";
从这里我收到的结果包括包含给定用户标签的图像(在本例中:me())。但是,这些图像可能包括不止一个标记的用户。我希望通过使用 SQL HAVING 子句和 COUNT (http://stackoverflow.com/a/3710501/1406986) 来解决这个问题。不幸的是,我认为 FQL 不支持此功能,因为当我尝试此调用时:
$fql = "SELECT pic, src_big FROM photo WHERE pid IN (SELECT pid FROM photo_tag HAVING COUNT(subject) = 1";
我收到了来自 Facebook 的错误消息。如果 FQL 实际上支持此功能,请纠正我。
为了尝试使用 Graph API 解决这个问题,我提出了以下请求:
$userPics = $facebook->api('/me/photos');
这将返回用户的照片,但是,从这一点开始,我被迫遍历每张照片,寻找只包含一个标签的照片。我发现这是不切实际的,例如,如果我需要为用户的每个朋友找到只包含他们的朋友而不包含其他朋友的图像。为此,我需要单独检索他们朋友的所有照片,然后遍历所有照片。
我仍在寻找一个好的解决方案。请发表您的想法和解决方案。