我的PHP系统中存在这种情况:
和
如果在系统中我已经使用Page2管理员用户登录,我需要使用相同的FB应用程序在Page2和PageX墙上写入。 我需要与Page1管理员用户相同,在Page1和PageX中写作。
每个用户都可以管理他的页面。
我该怎么办?
谢谢!
编辑1: 当我尝试在非管理员用户的网页上发帖时,应用会返回此消息 (#1)创建共享时发生错误
编辑2:
session_start();
$fb_data = array();
$app_id = 'XXXXXXXXXXXXXXXX';
$app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX';
$return_uri = 'http://site.com/fb/';
$config = array();
$config['appId'] = 'XXXXXXXXXXXXXXXX';
$config['secret'] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX';
$config['fileUpload'] = false;
include('facebook.php');
if(isset($_GET['code']))
{
$fb_data['code'] = $_GET['code'];
$_SESSION['HC-FB-CODE'] = serialize($fb_data);
$access_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id='.$app_id.'&redirect_uri='.$return_uri.'&client_secret='.$app_secret.'&code='.$fb_data['code']);
$access_token = str_replace('access_token=', '', $access_token);
$fb_data['access_token'] = $access_token;
$_SESSION['HC-FB-CODE'] = serialize($fb_data);
$json = json_decode(file_get_contents('https://graph.facebook.com/me/accounts?access_token='.$fb_data['access_token']));
foreach($json -> data as $key => $val)
{
if($val -> name == 'Page')
{
$page_token = $val -> access_token;
$fb = new Facebook($config);
$params = array(
"access_token" => $page_token,
"message" => "Test AUTOPOST[message]",
"link" => "http://www.site.com/",
"picture" => "http://www.site.com/img.png",
"name" => "Test AUTOPOST[name]",
"caption" => "Test AUTOPOST[caption]",
"description" => "Test AUTOPOST[description]"
);
try {
$ret = $fb->api('/'.$val -> id.'/feed', 'POST', $params);
echo 'Successfully posted to Facebook';
} catch(Exception $e) {
echo $e->getMessage();
}
}
}
}
else if(isset($_GET['start']))
{
header('Location: https://www.facebook.com/dialog/oauth?client_id='.$app_id.'&redirect_uri='.$return_uri.'&scope=manage_pages,publish_stream');
}
这是一个示例代码,仅供测试!并且与非管理员用户一起使用我在代码中设置了一个固定的页面ID而没有选择,当他们必须在他们自己的页面中发布时将使用它