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タグで色を選択する場合のサンプル
スポンサーリンク