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