20
18

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.

Instagram Graph APIを使って「いいね数」などを集計する

Last updated at Posted at 2019-11-04

概要

InstagramGraphAPIを使って、自分のInstagramアカウントの投稿の「いいね数」「コメント数」「フォロワー数」などを取得し、それらを集計してcsvファイルに書き出してみます。

最終の書き出し例

2019/10/28 13:25, フォロワー数:54, いいね累計数:545, コメント累計数:20

全体の流れ

  1. 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. 集計

    2-1. jsonデータを変数に格納して、デコードする

    2-2. 累計の計算(「いいね数」「コメント数」)

    2-3. csvファイルに必要データの追記書き出し

     (「日時」「フォロワー数」「累計いいね数」「累計コメント数」)

1. GraphAPIでデータ取得(1-1から1-4まで)

1-1 〜 1-4に関しては、以下の2記事を参考に行った。

また、以下は1-3, 4に関して必要なツール一覧

以下は、APIのリファレンス。

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}:投稿日時
  • 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");

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?