2013-01-09 21 views
1

正如該主題所述,我試圖從Facebook頁面獲取最新評論以及相關的用戶數據。我正在使用Open SDK & 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

我在Graph API瀏覽器中對其中一個頁面進行了測試,它工作正常。

這個多重查詢是否在圖形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