Facebook 3枚連続で画像投稿するよ(PHP)
Facebook のアルバム作成+画像を投稿する PHP スクリプトのご紹介です。
[投稿] ボタン押下で画像を 3枚アップしたいアプリがあったのですが、
Flash だと 1アクション 1画像しかアップできなかった(つまり、[投稿] ボタン押下で 1画像しかアップできなかった)ので
投稿部分のみ PHP にしました。
それをまるっと公開ですー。
ファイル構成
/
├ img_post.php ←これが投稿 PHP
├ base_facebook.php
├ facebook.php
└ fb_ca_chain_bundle.crt
※「img_post.php」以外は facebook/php-sdk – GitHub より取得してください。
img_post.php に渡される値
$_FILES['img_1'] // 画像1 $_FILES['img_2'] // 画像2 $_FILES['img_3'] // 画像3 $_POST['access_token'] // アクセストークン
img_post.php
<?php
require_once('facebook.php');
// 画像投稿順設定。$_FILES の名前と合わせてください。
// img_1 から順番に画像が投稿されます。
// PC のニュースフィードでは 1番目に投稿された画像が大きく表示されます。
// (2012年2月現在)
$ary_post_order = array('img_1', 'img_2', 'img_3');
// アクセストークン
$access_token = $_POST['access_token'];
$config = array(
'appId' => '【App ID/API Key】',
'secret' => '【アプリの秘訣】',
'fileUpload' => true,
);
$facebook = new Facebook($config);
// Set a new access token, by first getting it via means other than the SDK
$facebook->setAccessToken($access_token);
$user_id = $facebook->getUser();
if( $user_id ) {
// create album
$album_details = array(
'message' => '【アルバムの説明】',
'name' => '【アルバムの名前】',
);
$ret_obj_album = $facebook->api('/me/albums', 'post', $album_details);
$album_id = $ret_obj_album['id'];
// Upload to a user's profile.
try {
$cnt = 0;
foreach ( $ary_post_order as $key ) {
$ret_obj = $facebook->api('/' . $album_id . '/photos', 'POST', array(
'source' => '@' . $_FILES[$key]['tmp_name'],
)
);
if ( $ret_obj['id'] ) { $cnt++; }
}
echo ( $cnt == 3 ) ? 1 : -1;
} catch(FacebookApiException $e) {
echo -2;
}
} else {
echo -3;
}
?>
● 14行目【App ID/API Key】
アプリ管理画面から「App ID/API Key」を取得して差し替えてください。
● 15行目【アプリの秘訣】
アプリ管理画面から「アプリの秘訣」を取得して差し替えてください。
● 16行目 ’fileUpload’ => true,
「true」を設定してください。ここ【重要】。
● 28行目【アルバムの説明】
アルバムに説明をつける場合は文言をセットしてください。
● 29行目【アルバムの名前】
アルバムにつける名前をセットしてください。
● 39行目 ’source’ => ‘@’ . $_FILES[$key]['tmp_name'],
「@」を入れてください。ここ【重要】。
● 44行目
3枚無事にアップできたら「1」を出力します。
失敗したらマイナス値を出力しています。
エラー処理はお使いのアプリにあわせて変えてくださいね!
参考
facebook/php-sdk – GitHub
https://github.com/facebook/php-sdk
api – Facebook開発者
https://developers.facebook.com/docs/reference/php/facebook-api/
関連記事
TAM テクニカルチーム | Facebookアプリから写真を投稿する(Flash) | Tips Note
http://tam-tam.co.jp/tipsnote/actionscript/post2103.html
備考
Facebook のデータ取得は JSON を使っています。
上記コード上ではありませんが、base_facebook.php で使われています。
PHP のバージョンが 5.2.0 以上の場合は予めインストールされていますが
それ以下のバージョンでは使えない状態かもしれません。確認してくださいね!
画像のアップロードには CURL が使われています。
こちらもサーバによっては使えなかったりするので、要確認。
いじょ。


