2012-08-16 4 views
0
$fql = 'SELECT name,aid,photo_count,owner FROM album WHERE owner='.$userId; 

$fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
      (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1)'; 

현재 codeigniter 애플리케이션을 사용하여 현재 날짜로 이름이 지정된 앨범에 사진을 업로드하고 있습니다. 앨범 및 기타 모든 업로드가 잘 작동하지만 시도 할 때 쿼리 위의 빈 array.But를 반환하는 것은 내가이facebook fql 쿼리 앨범 테이블이 그래프 API와 작동하지 않습니다.

같은 API를 사용

https://developers.facebook.com/tools/explorer?fql=SELECT%20aid%2Cowner%2Cname%20FROM%20album%20WHERE%20owner%3D100002278102636

페이스 북의 테스트 쿼리 위젯 잘 작동 소유자 필드를 사용하여 앨범 테이블에서 앨범 이름을 선택합니다 17,451,515,

$ret_obj1 = $this->facebook->api(array(
            'method' => 'fql.query', 
            'query' => $fql, 
           )); 

내가 뭘 잘못 ... 미리 감사는

+0

확장 사용 권한 문제가 있습니까 ?? 그래프 api 탐색기를 통해 실제로 사용하고 동일한 사용 권한을 가진 응용 프로그램으로 시도 했습니까? – derki

답변

0

내 생각 엔이 권한 문제가 있다는 것입니다. 이 결과를 얻으려면 액세스 토큰에 user_photosfriends_photos 권한이있는 사용자로 인증 받아야합니다. 그렇게하지 않으면 FQL 쿼리가 결과를 반환하고 Facebook은 앱에 제공되기 전에 결과를 필터링하여 빈 데이터 세트를 제공합니다.

다른 가능성은 액세스 토큰이 사용자 100002278102636에 속하지 않는다는 것입니다. 그렇다면 friend 하위 쿼리가 실패합니다.

또한 aid 대신 album_object_id을 사용해야합니다. aid 필드 (및 pid)는 11 월에 삭제 될 것으로 보입니다.

0

urlencode를 통해 $ fql 쿼리를 실행 해 보셨습니까? 당신은 facebooks 그래프 탐색기에서 하나가 인코딩 된 것을 알 수 있지만, 당신은 제쳐두고하지

$ret_obj1 = $this->facebook->api(array(
           'method' => 'fql.query', 
           'query' => urlencode($fql), 
          )); 

입니다 -이 쿼리 :

$fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
     (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1)'; 

당신은 UID1 선택하는 UID1이 알려진 값을 =? 왜 그냥하지 말아야합니까

$fql = 'SELECT aid,owner,name FROM album WHERE owner = 100002278102636)'; 
관련 문제