2013-01-09 1 views
1

제목에 따르면 관련 사용자 데이터가 포함 된 가장 최근의 댓글을 Facebook 페이지에서 가져 오려고합니다. Open Graph & PHP SDK를 사용하고 있습니다.관련된 사용자 데이터가 포함 된 Facebook 페이지의 최근 코멘트 가져 오기

이 게시물에 대해 잘 작동 :

$fql_query = " 
    SELECT fromid, id, post_id, time, text 
    FROM comment 
    WHERE post_id IN (SELECT post_id FROM stream WHERE source_id = '" . $fb_id . "') 
    ORDER BY time DESC LIMIT 1000"; 

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

을 그리고 이것은 내가 필요로하는 사용자 세부 얻는 방법입니다 : 내가 찾을 수있는 모든에 따라,

$fql_query = " 
    SELECT pic_square, name 
    FROM user 
    WHERE uid = '" . $user_id . "' 
    "; 

을 그리고, 이것은 결합한다 두 가지는 fql.multiquery를 사용합니다 :

$fql_queries = "{ 
    \"query1\" : \" 
    SELECT fromid, id, post_id, time, text 
    FROM comment 
    WHERE post_id IN (SELECT post_id FROM stream WHERE source_id = '" . $fb_id . "') 
    ORDER BY time DESC LIMIT 1000 
    \", 
    \"query2\" : \"SELECT pic_square, name FROM user WHERE uid IN (SELECT fromid FROM #query1)\" 
    }"; 

$feed = $facebook->api(array(
    'method' => 'fql.multiquery', 
    'queries' => $fql_queries 
    )); 

그러나 단지 빈 배열을 반환합니다. 누구든지 내가 잘못하고있는 곳을 알고 있거나 내가 원하는 것을하기 위해 더 나은 방법을 가지고 있습니까? 항상 그렇듯 TIA.

답변

2

그래프 페이지 탐색기에서 내 페이지 중 하나에서이를 테스트하여 정상적으로 작동합니다.

그래프 API 탐색기에서이 멀티 쿼리가 페이지에서 작동합니까? 그렇다면 사용 권한 문제입니다.

아마도 문제는 json을 하드 코딩하는 방식에 있습니다. 내 사이트에서 이와 같은 구문을 사용합니다. (더 읽기 쉽습니다.)

$fql_queries = array(
    'query1' => "SELECT fromid, id, post_id, time, text...", 
    'query2' => "SELECT pic_square, name FROM user..." 
); 

... 
    'queries' => json_encode($fql_queries) 
+0

고마워요. cpilko, 구문으로 변환하면 문제가 해결되었습니다. 작품은 지금 매력처럼 :) – da5id

관련 문제