Facebook批量请求将访问令牌识别为页面管理员的用户


Facebook Batch Request recognizing access token as user for page admin

我正在开发一个应用程序,可以一次发布多条帖子。假设我有5个粉丝页面和10个群组。它会把它们全部张贴出来。我使用过图形api方法,当使用for循环并一次执行一个时,它工作得很好。但我知道了facebook的批量请求。现在的问题是,当我使用来自(https://graph.facebook.com/100000598120816/accounts)其工作良好的

$param = array( 'message' => "Demo test " , 'access_token' => "<fan page access token>");
try { 
    $posted = $facebook->api('/425355934226513/feed/', 'post', $param);
    if (strlen($posted["id"]) > 0 ) $success = TRUE;
} catch  (FacebookApiException $e) {
    $errMsg = $e->getMessage();
    $error = TRUE;
}

但当我尝试使用批处理请求执行同样的操作时,它会以USER的身份发布,而不是以PAGE ADMIN的身份发布。

$arr1[] = array(  "method"=>"POST", 'relative_url' => '<fan page id>/feed',"body" => "message=Apps testing..Please ignore this message for page." , 'access_token' => "<FAN PAGE TOKEN>");
$arr1[] = array(  "method"=>"POST", 'relative_url' => '<my group id>/feed',"body" => "message=Apps testing..Please ignore this message for page." , 'access_token' => "<USER PAGE TOKEN>");
try { 
    $posted = $facebook->api("/?batch=".urlencode(json_encode($arr1)), 'post');
    $success = TRUE;
} catch  (FacebookApiException $e) {
    $errMsg = $e->getMessage();
    $error = TRUE;
}

p.S以上两个代码都运行成功。但在粉丝页面中,它显示为USER而不是page ADMIN。

提前感谢。

我确信只有用户才能发布到组,而不是页面。即使是手动发布到组中,它也能以这种方式工作。

您应该尝试指定一个"回退"访问令牌,如中所述https://developers.facebook.com/docs/graph-api/making-multiple-requests/#differentaccesstokens此访问令牌应为应用程序访问令牌。

此外,我不确定您是否没有覆盖$arr1[]变量。。。

try'relative_url'=>'/feed?access_token=',对于组/用户令牌也是如此。

有一个错误不在json中查找access_token,即使文档中声明允许这样做。