0

私はPHPシステムでこのような状況に陥っています:

  • システム
  • FBアプリ
  • ページ1
  • ページ2
  • PageX

と:

  • Page1 管理者ユーザー
  • Page2 管理者ユーザー
  • PageX 管理者ユーザー

システムで Page2 管理者ユーザーでログインした場合、同じ FB アプリで Page2 と PageX ウォールに書き込む必要があります。Page1 と PageX に書き込み、Page1 Admin User と同じことが必要です。

各ユーザーは自分のページだけを管理できます。

どのようにできるのか?

ありがとう!

編集 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を設定しました。これは、自分のページに投稿する必要がある場合に使用されます

4

0 に答える 0