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/
