Получение вкладок страницы с помощью пакетного запроса - PullRequest
1 голос
/ 07 сентября 2011

Я отчаянно пытаюсь получить вкладки страницы, используя пакетный запрос (с 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."}}

Я пытался без пакетного запроса, и он работает просто отлично. Я предполагаю, что это происходит из-за ошибки в API Facebook, но, возможно, кто-то нашел обходной путь.

Спасибо, если кто-нибудь может мне помочь!

EDIT:

Потому что, похоже, никто не нашел решения этой проблемы:

Кто-нибудь знает, как получить все вкладки с фан-страницы в одном запросе?

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

при условии, что вы вошли в систему и имеете под рукой токен доступа для просмотра страниц, вот отрывок, который вы должны попробовать, прежде чем двигаться вперед:

// 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 голосов
/ 28 сентября 2011

Спасибо за помощь 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...