2013-04-18 96 views
4

我想要获取特定朋友的照片,我被加了标签,并且我的照片也是这个朋友被标记的地方。我使用fql,这样的地方, $ _POST [friend_id]先前是通过列出所有朋友的表单传递的:Facebook api PHP获取朋友照片我标记的地方

$facebook_login = "0"; 
$user = $facebook->getUser(); 
$perms = array('scope' => 'email,user_photos,read_mailbox'); 

if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
$facebook_login = "1"; 
    } catch (FacebookApiException $e) { 
    $user = null; 
    } 

} else { 
    die('<script>top.location.href="'.$facebook->getLoginUrl($perms).'";</script>'); 
} 



//friend photos that I'm tagged in 
$query = "SELECT id FROM photo WHERE from = $_POST[friend_id] AND tags IN ($user)"; 
$result = $facebook->api(array(
    'method' => 'fql.query', 
    'query' => $query, 
)); 

echo sprintf('<pre>%s</pre>', print_r($result,TRUE)); 


//my photos with my friend tagged in 
$query = "SELECT id FROM photo WHERE from = $user AND tags IN ($_POST[friend_id])"; 
$result = $facebook->api(array(
    'method' => 'fql.query', 
    'query' => $query, 
)); 

echo sprintf('<pre>%s</pre>', print_r($result,TRUE)); 

我可以这样做吗?

感谢

回答

2

尝试以下查询:

为了让您的朋友的照片,其中有你标签:

$friend_id = $_POST['friend_id']; 
$query = "SELECT object_id 
      FROM photo 
      WHERE owner=$friend_id AND 
       object_id IN (SELECT object_id FROM photo_tag WHERE subject=me())"; 

你的照片在您的朋友进行标记:

$query = "SELECT object_id 
      FROM photo 
      WHERE owner=me() AND 
       object_id IN (SELECT object_id FROM photo_tag WHERE subject=$friend_id)";