Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook批量请求将访问令牌识别为页面管理员的用户_Php_Facebook_Facebook Graph Api_Facebook Php Sdk_Batch Processing - Fatal编程技术网

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

Php Facebook批量请求将访问令牌识别为页面管理员的用户,php,facebook,facebook-graph-api,facebook-php-sdk,batch-processing,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,Batch Processing,我正在开发一个应用程序,一次发布多条帖子。假设我有5个粉丝页面和10个群组。它会把它们全部贴出来。我使用了GraphAPI方法,当使用for循环并一次执行一个循环时,它工作得很好。但我开始了解facebook批量请求。现在的问题是,当我从()使用fanpage访问令牌访问fanpage时,它工作正常 $param = array( 'message' => "Demo test " , 'access_token' => "<fan page access token>"

我正在开发一个应用程序,一次发布多条帖子。假设我有5个粉丝页面和10个群组。它会把它们全部贴出来。我使用了GraphAPI方法,当使用for循环并一次执行一个循环时,它工作得很好。但我开始了解facebook批量请求。现在的问题是,当我从()使用fanpage访问令牌访问fanpage时,它工作正常

$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;
}
$param=array('message'=>“Demo test”、'access_token'=>“”);
试试{
$posted=$facebook->api('/425355934226513/feed/'、'post'、$param);
如果(strlen($posted[“id”])>0)$success=TRUE;
}捕获(FacebookApiException$e){
$errMsg=$e->getMessage();
$error=TRUE;
}
但当我尝试使用批处理请求执行相同操作时,它将以用户身份发布,而不是以页面管理员的身份发布

$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;

}
$arr1[]=array(“方法”=>“发布”、“相对url”=>“/feed”、“正文”=>“消息=应用程序测试..请忽略此页面消息。”、“访问令牌”=>”;
$arr1[]=array(“方法”=>“发布”、“相对url”=>“/feed”、“正文”=>“消息=应用程序测试..请忽略此页面消息。”、“访问令牌”=>”);
试试{
$posted=$facebook->api(“/?batch=“.urlencode(json_encode($arr1)),'post');
$success=TRUE;
}捕获(FacebookApiException$e){
$errMsg=$e->getMessage();
$error=TRUE;
}
以上两个代码都成功运行。但在扇形页面中,它显示为用户而不是页面管理员

$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;

}

提前感谢。

您应该尝试指定“回退”访问令牌,如本访问令牌中所述。该访问令牌应为应用程序访问令牌


另外,我不确定您是否正在覆盖
$arr1[]
变量…

请尝试“相对url=>”/feed?访问\u令牌=”,对组/用户令牌也是如此


有一个bug没有在json中查找access_标记,即使文档中声明它是允许的。

我很确定,只有用户可以发布到组,而不是页面。即使是手动发布到组中,它也可以这样工作。

Hi。fb文档建议“batch=[{“method”:“POST”,“relative_url”:“me/feed”,“body”:“message=teststatus update&link=“},{”method:“GET”,“relative_url”:“me/feed?limit=1”}]”,我将分别给这两个令牌。。我现在怎么才能摆脱这种局面呢。如果这件事不起作用,那么我必须一次又一次地循环页面,而不是使用批处理。任何有其他建议的页面。请帮忙