LoginSignup
18
18

More than 5 years have passed since last update.

Facebook SDK for PHP v4.0で「いいね!」をしたFacebookページを取得

Last updated at Posted at 2014-08-20

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ファイルを作成。

composer.json
{
  "require" : {
    "facebook/php-sdk-v4" : "4.0.*"
  }
}

composerを実行

$ php composer.phar

Facebookアプリの登録

※この辺りはすぐに仕様が変わったしまいそうなのですが、2014年8月現在は下記の要領でFacebookアプリの登録ができます。

・開発者ページにアクセス
https://developers.facebook.com/

・Criate a New Appを選択
developers.facebook.com-.jpg

設定内容

・Display Name
Facebookアプリの名前

・Namespace
アプリのURLになる文字列

・Is this a test version of another app?
既に作成済みのアプリのテストバージョンを作る場合はこちらを「はい」にする

・カテゴリ
作成するアプリのカテゴリ

App IDとApp Secreatの確認

facebookアプリを作成したらApp IDとApp Secretを確認します。
settingsページにあります。

settings.jpg

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>
18
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18