2011-09-07 42 views
1

我拼命嘗試使用批量請求(使用Facebook PHP SDK)檢索頁面的標籤,但Facebook不斷返回相同的錯誤。這裏是我的代碼:使用批量請求檢索頁面的標籤

$query = array(
    array('method' => 'GET', 'relative_url' => '/'.$page_id, 'name' => 'get-page'), 
    array('method' => 'GET', 'relative_url' => '/'.$page_id.'/tabs', 'access_token' => '{result=get-page:$.data.0.access_token}')); 

$res = $facebook->api('/?batch=' . json_encode($query), 'POST'); 

而這裏的結果:

array 
    'code' => int 403 
    'headers' => 
     array 
      ... 
    'body' => string '{"error":{"type":"OAuthException","message":"(#210) Subject must be a page."}} 

我嘗試沒有批量要求,以及它工作得很好。我認爲它來自Facebook API中的錯誤,但也許有人找到了解決方法。

謝謝,如果有人能幫助我!

編輯:

因爲似乎沒有人找到解決這個問題:

有誰知道如何在單個請求中提取所有從一個粉絲頁面的標籤?

回答

1

假設你已經登錄並擁有在手的訪問令牌來這裏觀看頁面的摘錄,你應該在繼續之前嘗試:

// get all the pages   
$pages = $fb->api('/me/accounts'); 
$pages = $pages['data']; 

// assume there is at least one page 
$workpage = $pages[0]; 

// get all the tabs for this page 
$tabs = $fb->api("/{$workpage['id']}/tabs", array('access_token'=>$workpage['access_token'])); 
print_r($tabs); 

至於你所需要的「批」的要求,您可以將循環添加到上述代碼並獲得創意。

0

謝謝你的幫助Fakeer!其實我已經嘗試了你的解決方案,它工作得很好,但我想限制請求的數量...

最後我發現我的請求出了什麼問題。這是正確的版本:

$query = array(
    array('method' => 'GET', 'relative_url' => '/'.$page_id.'?fields=access_token', 'name' => 'get-page'), 
    array('method' => 'GET', 'relative_url' => '/'.$page_id.'/tabs', 'access_token' => '{result=get-page:$.access_token}')); 

$res = $facebook->api('/?batch=' . json_encode($query), 'POST');