FacebookページにGraph APIを使って投稿する

技術関係

FacebookのAPIを通して、Facebookページに投稿するプログラム

基本的には、Facebook PHP SDKを使う。使い方はそちらのサンプルをベースに。

Facebookにログインする際に、”manage_pages“を付けておく。
これで投稿者が管理するFacebookページを操作できるようになる

$params = array(
'scope' => 'read_stream, publish_stream, status_update, manage_pages',
'redirect_uri' => 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"]
);
$loginUrl = $facebook->getLoginUrl($params);

投稿する際のプログラムは以下の様な感じ。投稿のところは自分のウォールに投稿するのと同様に可能

// ユーザIDを取得する。今回は自分
$user_profile = $facebook->api('/me');
$uid = $user_profile["id"];
// ユーザが管理するFBページの一覧を取得する
//  $pagesの中にはユーザが管理権限を持つFacebookページの情報が入る
$pages = $facebook->api("/$uid/accounts");
// 管理するFacebookページ分ループする
foreach($pages["data"] as $page) {
// 特定のFacebookページの時に動作させる
//  ここら辺は状況に合わせて書いておく
if($page["id"] == "<FacebookページのID>") {
$pid = $page["id"];
// 以下に注意しながらウォールへ投稿。それ以外は通常の投稿と同じ
// ・apiのパラメータにFacebookページのIDを埋め込む
// ・access_tokenとして、Facebookページのaccess_tokenを設定する
$result = $facebook->api("/$pid/feed", "post", array(
"message"      => "メッセージ",
"picture"      => "画像のURL",
"link"         => "リンクのURL",
"name"         => "リンク名",
"description"  => "リンクの説明",
"access_token" => $page["access_token"]
));
}
}
タイトルとURLをコピーしました