32
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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の中から以下の利用

サンプルコード

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?