Php 检索页面';使用批处理请求删除选项卡
我拼命尝试使用批处理请求(使用Facebook PHP SDK)检索页面的选项卡,但Facebook不断返回相同的错误。这是我的密码:Php 检索页面';使用批处理请求删除选项卡,php,facebook,api,facebook-graph-api,Php,Facebook,Api,Facebook Graph Api,我拼命尝试使用批处理请求(使用Facebook PHP SDK)检索页面的选项卡,但Facebook不断返回相同的错误。这是我的密码: $query = array( array('method' => 'GET', 'relative_url' => '/'.$page_id, 'name' => 'get-page' ), array('method' => 'GET', 'relative_url' => '/'.$page_id.'/tabs
$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中的一个bug,但也许有人找到了解决方法
如果有人能帮助我,谢谢你
编辑:
因为似乎没有人能找到解决这个问题的办法:
有人知道如何在一次请求中从一个风扇页面获取所有选项卡吗?假设您已登录,并且手头有一个访问令牌,可以查看页面。在继续之前,您应该尝试以下摘录:
// 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);
至于您需要的“批处理”请求,您可以在上述代码中添加循环,并发挥创意。假设您已登录,并且手头有一个访问令牌,可以查看页面。下面是一个摘录,您应该在继续之前尝试:
// 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');
谢谢你的帮助,法克尔!事实上,我已经尝试过你的解决方案,效果很好,但我想限制请求的数量 最后我发现我的请求出了什么问题。以下是正确的版本:
$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');