Facebook APIを使っていいねをしたページを取得します。
Facebookはよく仕様が変わるので今回のもいつまでもつか分からないのですが、、、
今回は
- PHP5.6
- Facebook SDK for PHP v4.0
を使っていきます。
PHP5.6のインストールはhttp://qiita.com/ykyk1218/items/c859870ef8dac79f5e1c
を確認してみてください。
Facebook SDK for PHPのインストール
composerを使ったインストールがいかしているので、composerを使います。
あらかじめcomposerをインストールしておいてください。
下記の要領でcomposer.jsonファイルを作成。
{
"require" : {
"facebook/php-sdk-v4" : "4.0.*"
}
}
composerを実行
$ php composer.phar
Facebookアプリの登録
※この辺りはすぐに仕様が変わったしまいそうなのですが、2014年8月現在は下記の要領でFacebookアプリの登録ができます。
・開発者ページにアクセス
https://developers.facebook.com/
設定内容
・Display Name
Facebookアプリの名前
・Namespace
アプリのURLになる文字列
・Is this a test version of another app?
既に作成済みのアプリのテストバージョンを作る場合はこちらを「はい」にする
・カテゴリ
作成するアプリのカテゴリ
App IDとApp Secreatの確認
facebookアプリを作成したらApp IDとApp Secretを確認します。
settingsページにあります。
PHPファイルの作成
この辺りを見ればきっとなんとかなります。
https://developers.facebook.com/docs/reference/php/4.0.0
session_start();
require("../vendor/autoload.php");
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
use Facebook\FacebookRedirectLoginHelper;
define("APP_ID", '<facebookアプリID>');
define("APP_SECRET", '<facebookアプリのシークレットID>');
FacebookSession::setDefaultApplication(APP_ID, APP_SECRET);
$helper = new FacebookRedirectLoginHelper('<facebook認証をした後の戻り先URL(今回はこのURLに戻ってくることとします)>');
$session = $helper->getSessionFromRedirect();
$scope=null;
if($session) {
$accessToken = $session->getToken();
$request = new FacebookRequest($session, 'GET', '/me/likes');
$response = $request->execute();
}else{
//「いいね」をしたページリストにアクセスできる権限を付与
$scope = array('user_likes');
}
?>
<html>
<div><a href="<?php echo $helper->getLoginUrl($scope); ?>">facebook認証</a></div>
<?php if(isset($response)) {
$graphObjList = $response->getGraphObjectList();
foreach($graphObjList as $r) {
//Facebookページの名前
$name = $r->getProperty('name');
//FacebookページID
$fbPageId = $r->getProperty('id');
?>
<p><a href="http://www.facebook.com/<?= $fbPageId ?>"><?= $name ?></a></p>
<?php }
} ?>
</html>