概要
InstagramGraphAPIを使って、自分のInstagramアカウントの投稿の「いいね数」「コメント数」「フォロワー数」などを取得し、それらを集計してcsvファイルに書き出してみます。
最終の書き出し例
2019/10/28 13:25, フォロワー数:54, いいね累計数:545, コメント累計数:20
全体の流れ
- GraphAPIでデータ取得
1-1. インスタのアカウントをビジネスアカウントに
1-2. Facebookアカウントを用意して1-1のアカウントと連携
1-3. アクセストークン(APIを表示するのに必要な文字列)を取得
1-3-1. facebook for developerでアプリを作成
1-3-2. 1個目のアクセストークンを取得
1-3-3. 2個目のアクセストークンを取得
1-3-4. 3個目のアクセストークンを取得
1-3-5. トークンの内容をチェック
1-4. ビジネスアカウントIDを取得
- 集計
2-1. jsonデータを変数に格納して、デコードする
2-2. 累計の計算(「いいね数」「コメント数」)
2-3. csvファイルに必要データの追記書き出し
(「日時」「フォロワー数」「累計いいね数」「累計コメント数」)
1. GraphAPIでデータ取得(1-1から1-4まで)
1-1 〜 1-4に関しては、以下の2記事を参考に行った。
- Instagram Graph APIを使おう!(主にこちらの記事参考。)
-
Instagram Graph APIとGAS(Google Apps Script)を使ってインスタグラムのフォロワー数を自動的に日々記録する (1-4のパラメータ指定部分のみ参考。)
- 例)いいね数とコメント数をとる場合:「media{comments_count,like_count}」 )
また、以下は1-3, 4に関して必要なツール一覧
- facebook for developer(1-3-1, 1-3-3, 1-4で利用。)
- facebook for developersのグラフAPIエクスプローラ(1-3-2で利用。)
- アクセストークンデバッガー(1-3-5で利用。)
以下は、APIのリファレンス。
- Refecence / Instagram Graph API(1-4のパラメータ指定の仕方が記載。)
2-1. jsonデータを変数に格納して、デコードする
//jsonデータ取得し、変数に格納
$url = "https://graph.facebook.com/v4.0/「ビジネスアカウントID」?fields=「取得したいもののパラメータ指定」&access_token=「3個目のアクセストークン」";
$json = file_get_contents($url);
// $jsonを連想配列にデコード
$array = json_decode( $json , true ) ;
- ビジネスアカウントID:1-4で取得したもの
- 取得したいもののパラメータ指定:
- パラメータ:「followers_count%2Cbusiness_discovery.username(「アカウント名」){media{comments_count,like_count,timestamp}}」
- followers_count:フォロワー数
- media{comments_count}:コメント数
- media{like_count}:いいね数
- media{timestamp}:投稿日時
- パラメータ:「followers_count%2Cbusiness_discovery.username(「アカウント名」){media{comments_count,like_count,timestamp}}」
- 3個目のアクセストークン:1-3-4で取得したもの
2-2. 累計の計算
// 投稿数取得
$num = count($array["business_discovery"]["media"]["data"]);
// 累計計算
for($i=0; $i<$num; $i++){
// いいね累計
$like_sum = $like_sum + $array["business_discovery"]["media"]["data"][$i]["like_count"];
// コメント累計
$comments_sum = $comments_sum + $array["business_discovery"]["media"]["data"][$i]["comments_count"];
};
2-3. csvファイルに必要データの追記書き出し
「日時」「フォロワー数」と、[2-2]で取得済みの「いいね累計数」「コメント累計数」を、csvファイルに追記で書き出す。
// フォロワー数取得
$follower = $array["followers_count"];
// 必要データを配列に格納
$contents = date("Y/m/d H:i").', フォロワー数:'.$follower.', いいね累計数:'.$like_sum.', コメント累計数:'.$comments_sum;
// ファイルを開く。"a"は書き出し用として開くパラメータ。
$file = fopen("data.csv", "a");
// データを1行書き込む
fputs($file, $contents."\n");
全体コード(データ取得から集計、書き出しまで)
/* 2-1. jsonデータを変数に格納して、デコードする */
$url = "[取得したいjsonのURL]";
$json = file_get_contents($url);
$array = json_decode( $json , true ) ;
/* 2-2. 累計の計算 */
$num = count($array["business_discovery"]["media"]["data"]);
for($i=0; $i<$num; $i++){
$like_sum = $like_sum + $array["business_discovery"]["media"]["data"][$i]["like_count"];
$comments_sum = $comments_sum + $array["business_discovery"]["media"]["data"][$i]["comments_count"];
};
/* 2-3. csvファイルに必要データの追記書き出し */
$follower = $array["followers_count"];
$contents = date("Y/m/d H:i").', フォロワー数:'.$follower.', いいね累計数:'.$like_sum.', コメント累計数:'.$comments_sum;
$file = fopen("data.csv", "a");
fputs($file, $contents."\n");
参考
- データの取得の流れ
- 集計コード
-
PHPでJSONデータの取得の仕方
- jsonデータを変数に格納するとこまで参考。
-
PHPでJSONのデータを処理する方法
- デコードして、連想配列の中の取り出し方参考。
- PHPでJSONファイルのデータを取得し、配列に格納する
-
PHPでJSONデータの取得の仕方
- その他
-
デコード / コトバンク
- デコード:符号化されたデータ(ここではjsonデータ)を元の状態に復元すること。
-
デコード / コトバンク