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 が使われています。
こちらもサーバによっては使えなかったりするので、要確認。
いじょ。