使用批量请求检索页面的标签
问题描述:
我拼命尝试使用批量请求(使用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中的错误,但也许有人找到了解决方法。
谢谢,如果有人能帮助我!
编辑:
因为似乎没有人找到解决这个问题:
有谁知道如何在单个请求中提取所有从一个粉丝页面的标签?
答
假设你已经登录并拥有在手的访问令牌来这里观看页面的摘录,你应该在继续之前尝试:
// 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);
至于你所需要的“批”的要求,您可以将循环添加到上述代码并获得创意。
答
谢谢你的帮助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');