我正在拼命尝试使用批量请求(使用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中的一个错误,但也许有人找到了解决方法。
感谢有人可以帮助我!
编辑:
因为似乎没有人找到解决这个问题的方法:
是否有人知道如何在单个请求中从粉丝页面获取所有标签?
答案 0 :(得分: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);
对于您需要的“批量”请求,您可以为上述代码添加循环并获得创意。
答案 1 :(得分: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');