Facebook APIをPHP SDKを使って色々する方法
Facebookでdeveloper登録して、
https://developers.facebook.com/
からアプリを登録する。
登録したアプリの”App ID/API Key”と”アプリの秘訣”を記録する。
sdkをダウンロードして設置する。
phpファイルから、/src/functions.phpを読み込んで、色々と試してみる。
require_once( dirname( __FILE__ ) . '/src/functions.php' ); $fbAppId = YOUR APP ID; $fbSecret = YOUR SECRET; if($fbAppId != '' && $fbAppId != '') { $facebook = new Facebook(array( 'appId' => $fbAppId, 'secret' => $fbSecret, 'cookie' => true, )); try{ $uid = $facebook->getUser(); $facebook_me = $facebook->api('/me'); }catch(FacebookApiException $e){ echo $e->getMessage(); } }
これでprint_r($facebook_me)すると、facebookに登録されている情報が色々と表示される。
基本的にこれの使い回しでgraph apiを使いこなす。
ミソは、 $facebook->api()の使い方だが、この中身をfacebook.phpで見てみると
public function api() { $args = func_get_args(); if (is_array($args[0])) { return $this->_restserver($args[0]); } else { return call_user_func_array(array($this, '_graph'), $args); } }
とあり、さらに
protected function _graph($path, $method = 'GET', $params = array()) { (略) }
とあるので、1個目でpath (‘/me’など)、2個目でmethod (post, deleteなど)を指定し、paramsはapiのreferenceを参照して必要なものを入れる。
アプリでいくつか権限を要求する場合は
$loginUrl = $facebook->getLoginUrl( array('scope' => 'email,read_stream') );
として、その$loginUrlにアクセスさせれば良い。
これを使って、WordPressのプラグインを作っていれたのがchoinomi.com.
よく聞かれる、ページへの投稿は、まずそのユーザーがpageのwallへの書き込み権限があるかを確認し、書き込めれば書き込めばいい。ざっくりこんな感じの流れで:
$page_id = 'ページのID'; try{ $fbPageStatus = $facebook->api('/'.$page_id); } catch (FacebookApiException $e) { echo $e->getMessage(); } if($fbPageStatus == 1) { try{ $statusUpdate = $facebook->api('/'.$page_id.'/feed', 'post', array('message'=> 'test post to page',) ); } catch (FacebookApiException $e) { echo $e->getMessage(); } }
ちなみに
ユーザーのアイコンを表示するだけなら、50×50 pxなら
<img src="https://graph.facebook.com/ykawato/picture">
大きい画像(幅200px)なら
<img src="https://graph.facebook.com/ykawato/picture?type=large">
とすれば表示できる。ykawato部にユーザーのidかusernameを入れる。
詳しくはこちら https://developers.facebook.com/docs/reference/api/using-pictures/