[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
が必要なので忘れないようにしましょう
注意: ここで取得できるアクセストークンは期限付き
期限切れのないアクセストークンの取得
期限切れのないアクセストークンを取得するには
- Facebookアプリを作成
- Graph API Explorerでアクセストークンを取得 ※permissionとか気を付けて
- 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"
}
}
良い感じ(ノハズ)