我正在开发一个应用程序,可以一次发布多条帖子。假设我有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,即使文档中声明允许这样做。