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
- サンプルコード
- Wordpress
- stdClassクラスとは
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- $_SERVER['PHP_SELF']は危険?
- $_REQUESTに入る値と、その優先順位
- Softbankの携帯で文字の色を白にするときは注意
- forとforeachの速度比較
- ディレクトリが存在するにもかかわらず、『No such file or directory』エラーが出る
- Firefox、Chromeなどで文字化けを防ぐ方法 ヘッダー情報に文字コードを指定
- mailtoの使い方
- NetBeans6のインストール(JavaだけでなくRuby、PHP、C/C++に対応した統合開発環境)
- docomo端末でCSSを使うには
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- OpenPNEのツッコミどころ
- フォーム要素の属性名の『ドット( . )』は『アンダーバー( _ )』に変わります
- phpBugTracker [バグ追跡システム]
- 位置情報・GPS情報の取得方法
- PHPの閉じタグは書いてはいけない
- 『このインターネットのサイトを開くことができません。』と出て、ファイルをダウンロードできない
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- ブラウザの中止ボタンを押した後も処理を実行させる方法 タイムアウト以外の停止
- simplexml_load_file()、simplexml_load_string()でparser error : Input is not proper UTF-8, indicate encoding !
- 配列値格納の構文と組み込み関数による速度比較
- Net_UserAgent_Mobile 携帯判別PEARパッケージの使い方と注意点
- Excelで保存したときのCSVファイルの仕様
- Joomla(ジュームラ)
スポンサーリンク