PHPでfacebookのフィード(ウォール)に投稿する方法
メッセージのみを投稿する場合
画像リンク付きで投稿する場合式
facebookに画像ファイルをアップロードして投稿する場合
[参考記事] facebook APIを使用する時にfacebook Appsでアプリを登録するまでの流れ
[参考記事] PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
[参考記事] PHPで複数の画像をfacebookに投稿する方法
[参考記事] PHPでfacebook投稿時に公開範囲を指定する方法
投稿する処理の前に、facebookの認証処理が必要です。
defined("FACEBOOK_APP_ID") || define("FACEBOOK_APP_ID", 【App ID】);
defined("FACEBOOK_SECRET") || define("FACEBOOK_SECRET", 【App Secret】);
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET,
));
$uid = $facebook->getUser();
if(!empty($_GET['error_code'])){
echo 'facebook認証エラー';
exit;
}elseif(!$uid){
$params = array(
'redirect_uri' => "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"],
'scope' => 'publish_stream',
);
$fb_login_url = $facebook->getLoginUrl($params);
header("Location: " . $fb_login_url);
exit;
}
メッセージのみを投稿する場合
try {
$me = $facebook->api('/me');
$result = $facebook->api("/me/feed", "post", array(
"message" => 'このメッセージが投稿されます。',
));
if(empty($result['id'])){
die('Facebookの投稿に失敗しました。');
}
} catch (FacebookApiException $e) {
throw new Exception($e->getMessage());
}
画像リンク付きで投稿する場合
try {
$me = $facebook->api('/me');
$result = $facebook->api("/me/feed", "post", array(
"message" => 'このメッセージが投稿されます。',
"picture" => '画像のURL',
"link" => '画像リンク先のURL',
"name" => 'リンク名',
"caption" => '説明文',
"description" => '詳細文',
));
if(empty($result['id'])){
die('Facebookの投稿に失敗しました。');
}
} catch (FacebookApiException $e) {
throw new Exception($e->getMessage());
}

この場合は画像ファイルはfacebookとは違うサーバの画像です。
facebookに画像ファイルをアップロードして投稿する場合
この場合、画像はアルバムに投稿されます。
[参考記事] PHPで複数の画像をfacebookに投稿する方法
try {
$me = $facebook->api('/me');
// アルバムを作る場合
$album=$facebook->api('me/albums','POST',array( //アルバム作る
"name" => 'アルバム名',
"message" => 'このメッセージが投稿されます。'
));
if(empty($album['id'])){
die('Facebookの投稿に失敗しました。');
}
$albumID = $album['id']; // アルバムID
$facebook->setFileUploadSupport( true );
$result = $facebook->api("/".$albumID."/photos", "POST", array(
"message" => '画像のキャプションです。',
"source" => '@'.【画像のパス】,
));
if(empty($result['id'])){
die('Facebookの投稿に失敗しました。');
}
} catch (FacebookApiException $e) {
throw new Exception($e->getMessage());
}
setFileUploadSupport()を指定しないと、画像はアップロードできず、次のようなエラーが出ます。
OAuthException: (#324) Requires upload file
アルバムIDはアルバムのURLからわかります。
set=a.【アルバムID】.1111111.【ユーザーID】
「タイムラインの写真」にアップロードする場合は、このアルバムIDを指定します。
アルバムIDを『 me 』にすると、アルバム名がアプリ名のアルバムが生成されて、そこにアップロードされます。
$result = $facebook->api("/me/photos", "post", array(
関連記事
- PHPでfacebook投稿時に公開範囲を指定する方法
- PHPで複数の画像をfacebookに投稿する方法
- PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
- facebook APIを使用する時にfacebook Appsでアプリを登録するまでの流れ
- PHP
- サンプルコード
- PDO_MYSQLをインストールする方法
- switch文とif文の違い
- ファイルを読み込む/ファイルに書き込む
- fgetcsv関数を文字化け対応 setlocaleの文字コード指定
- quoted-printable文字列の変換
- forとforeachの速度比較
- CakePHPのバージョンごとのシステム要件
- HEADリクエストを排除してサーバ負荷を軽減させる
- CakePHPでカラムを比較してSELECTする方法
- Zend Serverとは
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- mail関数やmb_send_mail関数でReturn-Pathを設定する方法
- EC-CUBE
- SSL通信かどうか
- 動的ページを静的ページに偽装する方法
- strtotimeの指定
- ファイル操作
- NetBeans6のインストール(JavaだけでなくRuby、PHP、C/C++に対応した統合開発環境)
- Zend Optimizerのインストール
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- HTMLファイルのエンコードを『内容から判別する』にしない方法
- CakePHP
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- クラスとオブジェクト
- mailtoの使い方
- SELECTタグで色を選択する場合のサンプル
スポンサーリンク





