2012-06-21 1 views
1

사진에 태그 된 친구 목록을 얻으려고합니다. 나는 얼마나 많은 사진, 어떤 사진에 관심이 없다. 예 또는 아니오.FQL 쿼리로 사진 태그가있는 친구를 찾으십시오.

다음 쿼리는 친구 목록에있는 사용자와 관련된 모든 태그를 가져 오려고합니다. 결과가 너무 크면 다른 사용자에게 한 결과로 제한하는 것을 선호합니다.

SELECT text, subject FROM photo_tag WHERE subject IN (SELECT uid2 FROM friend WHERE uid1=58015959) 

어떤 아이디어가? 그래프 API를 사용하는 것이 가능합니다. 미리 감사드립니다.

답변

1

불행히도 FQL에서이 쿼리에 대한 예/아니오 대답을 얻는 것은 쉽고 효과적이지 않습니다.

그러나 http://graph.facebook.com/{user-id}/photos을 쿼리 할 수 ​​있습니다. 나는이 단계를 복잡하게하고 있었고 /photos은 업로드 된 모든 이미지가 아니라 사용자 ID가 태그 된 사진 만 반환한다는 사실을 놓쳤다.

+0

이것은 "사용자의 사진"섹션에서 사용자가 허용 한 사진 만 반환합니다. 태그가없는 사진은이 요청에서 반환되지 않습니다. –

1

이 당신에게 사진에 태그 된 친구 목록을 줄 것이다 : 당신이 활성 태거입니다 많은 친구를 가지고있는 경우에

SELECT name FROM user WHERE uid IN 
    (SELECT subject FROM photo_tag WHERE subject IN 
     (SELECT uid2 FROM friend WHERE uid1=me()) 
    LIMIT {n} 1000) 

을, 당신은 이상이 쿼리를 반복해야합니다 {n}, 여기서 {n} = 1000 * 쿼리를 실행 한 횟수 +1 1.

+0

사람마다 하나의 결과로 제한되지만, 두 번째 쿼리 (photo_tag의 결과)는 너무 커서 모든 친구를 반환 할 수 없습니다. 내 경우에는 약 2,400 개의 결과를 얻었고 8 명의 친구가 그만 둡니다. 두 번째 쿼리를 제한하는 방법을 찾아야합니다. 일부 사람들은 FQL 쿼리에서 php의 strpos를 사용하지만 그걸 가지고 있지 않은 것을 보았습니다. – Carson

+0

위의 편집을 참조하십시오. 'strpos'는 오직 하나의 특정 태그를 찾기 위해 쿼리를 제한하고자 할 때만 도움이 될 것입니다. – cpilko

관련 문제