使我的Facebook应用程序可以在Facebook页面上写其他人

时间:2013-10-27 21:06:12

标签: php facebook facebook-graph-api

我的PHP系统中存在这种情况:

  • 系统
  • FB App
  • 第1页
  • 第2页
  • pageX属性

  • Page1管理员用户
  • Page2管理员用户
  • PageX管理员用户

如果在系统中我已经使用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而没有选择,当他们必须在他们自己的页面中发布时将使用它

0 个答案:

没有答案