LoginSignup
32
34

More than 5 years have passed since last update.

[PHP][Graph API] Facebookページのいいね、リーチの取得

Last updated at Posted at 2015-08-31

[PHP][Graph API] Facebookページのいいね、リーチの取得

企業ページなどの、運営をしているFacebookページの「いいね」「リーチ」を取得する方法

作成をする人がFacebookページの運営者に入っている前提でのお話

Graph API

Facebookさんが提供している、Facebook関係のもろもろの情報を取得するためのAPI

今回は2015/08で最新のv2.4の場合です。

Graph API Explorer

https://developers.facebook.com/tools/explorer/

グラフAPIをここで色々試しに叩ける。便利。

アクセストークンとかも簡単に取得できる。

取得するアクセストークンのpermissionをマウスクリックでぽちぽち選択できる

リーチ数を取得する際は read_insights が必要なので忘れないようにしましょう

注意: ここで取得できるアクセストークンは期限付き

期限切れのないアクセストークンの取得

期限切れのないアクセストークンを取得するには

1. Facebookアプリを作成
2. Graph API Explorerでアクセストークンを取得 ※permissionとか気を付けて

3. Facebookアプリとアクセストークンを紐づけて、期限切れがないようにようにする

https://graph.facebook.com/oauth/access_token?
client_id=[FacebookアプリのID]
&client_secret=[Facebookアプリのパス]
&grant_type=fb_exchange_token
&fb_exchange_token=[取得したアクセストークン]

この辺を参考にすればうまく行くかと。

2015年度版WordPressでFacebookアプリを使う為のDeveloers登録とアプリ作成手順

http://itevangelist.net/blog/wordpress-facebook-developers-resgitration-and-add-app/

Graph APIからFacebookPageのInsightsを取得する方法

http://qiita.com/tachiba/items/c744d66889586c397d97

いいね、リーチ数の取得

各値の取得にはGraph APIから取得できるInsightsの中から以下の利用
* 「いいね」にはpage_fansを利用

* 「リーチ」にはpage_impressions_uniqueを利用

参考:https://developers.facebook.com/docs/graph-api/reference/v2.4/insights

サンプルコード

public function getFbPageValues()
{
        $date1 = '2015-08-28';
        $date2 = 'now';

        //FacebookページのID
        $pageId = 'FacebookページのID';
        //取得したアクセストークン
        $accessToken = '取得したアクセストークン';

        //いいね取得用
        $urlForLikes = 'https://graph.facebook.com/'
                        . $pageId  . '/insights/page_fans/lifetime?access_token='
                        . $accessToken . '&since=' . $date1; //until=とかもできる
        $urlForReachs = 'https://graph.facebook.com/'
                        . $pageId  . '/insights/page_impressions_unique/day?access_token='
                        . $accessToken . '&until=' . $date2;


        // Graph APIはJSON形式のデータをレスポンスとして返す
        $resultsLikes = json_decode(file_get_contents($urlForLikes));
        $likes = $resultsLikes->data[0]->values;

        $resultsReachs = json_decode(file_get_contents($urlForReachs));
        $reachs = $resultsReachs->data[0]->values;


        echo '<pre>';
        echo 'いいね<br>';
        var_dump($likes);
        echo 'リーチ<br>';
        var_dump($reachs);
        echo '</pre>';
}

結果

いいね
array(2) {
  [0]=>
  object(stdClass)#159 (2) {
    ["value"]=>
    int(354)
    ["end_time"]=>
    string(24) "2015-08-28T07:00:00+0000"
  }
  [1]=>
  object(stdClass)#160 (2) {
    ["value"]=>
    int(354)
    ["end_time"]=>
    string(24) "2015-08-29T07:00:00+0000"
  }
}
リーチ
array(5) {
  [0]=>
  object(stdClass)#164 (2) {
    ["value"]=>
    int(1454)
    ["end_time"]=>
    string(24) "2015-08-27T07:00:00+0000"
  }
  [1]=>
  object(stdClass)#165 (2) {
    ["value"]=>
    int(2685)
    ["end_time"]=>
    string(24) "2015-08-28T07:00:00+0000"
  }
  [2]=>
  object(stdClass)#166 (2) {
    ["value"]=>
    int(671)
    ["end_time"]=>
    string(24) "2015-08-29T07:00:00+0000"
  }
  [3]=>
  object(stdClass)#167 (2) {
    ["value"]=>
    int(181)
    ["end_time"]=>
    string(24) "2015-08-30T07:00:00+0000"
  }
  [4]=>
  object(stdClass)#168 (2) {
    ["value"]=>
    int(56)
    ["end_time"]=>
    string(24) "2015-08-31T07:00:00+0000"
  }
}

良い感じ(ノハズ)

32
34
0

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
32
34