我的 PHP 系统中有这种情况:
- 系统
- 脸书应用
- 第1页
- 第2页
- 页面X
和:
- 第 1 页管理员用户
- Page2 管理员用户
- PageX 管理员用户
如果在系统中我使用 Page2 Admin User 登录,我需要使用相同的 FB App 在 Page2 和 PageX wall 中写入。我需要与 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,没有选择,当他们必须在自己的页面中发布时使用