development_creative

この記事は1年以上経過しています。

【2023年】instagramの投稿を取得する

まずは取得コードを公開!

弊社で現行動いているコードを公開。
ほんと感謝してよね?

アカウントのデータを取得するphp

// instagram取得
$insta_media_limit = '32';
$insta_business_id = 'こちらにアカウントのビジネスID';
$insta_access_token = '無期限のクソ長いアクセストークンを貼り付けてね';

$json = file_get_contents("https://graph.facebook.com/v15.0/{$insta_business_id}?fields=name%2Cmedia.limit({$insta_media_limit})%7Bcaption%2Clike_count%2Cthumbnail_url%2Cmedia_url%2Cpermalink%2Ctimestamp%2Cusername%7D&access_token={$insta_access_token}");

$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$obj = json_decode($json, true);

$insta = [];

foreach ((array)$obj['media']['data'] as $k => $v) {
    if (isset($v['thumbnail_url'])) {
        $data = [
            'img' => $v['thumbnail_url'], // 投稿が動画の場合、サムネURL
            // 'caption' => $v['caption'],
            'link' => $v['permalink'],
            'timestamp' => $v['timestamp'],
        ];
    } else {
        $data = [
            'img' => $v['media_url'],
            // 'caption' => $v['caption'],
            'link' => $v['permalink'],
            'timestamp' => $v['timestamp'],
        ];
    }
    $insta[] = $data;
}

上記が、instaアカウントの情報を引っ張ってくるphpです。

仕様としては、ビジネスIDと、アクセストークンを貼り付ければ、データ取得できます。

$insta_media_limitは、取得するメディアの数です。
こちらの引数の数だけ、データを取得します。

取得したデータを吐き出すhtml

<div class="account-id">
  <div class="row g-2 g-md-3">
     <?php foreach ($insta as $v) { ?>
     <div>
        <a class="insta-img" href="<?php echo $v['link']; ?>" target="_blank" rel="noopener noreferrer">
          <img src="<?php echo $v['img']; ?>" class="lazyload" loading="lazy" alt="instagram_image">
        </a>
     </div>
     <?php } ?>
     <?php endforeach; ?>
  </div>
</div>

こちらに関しては、取得したデータをforeachする基礎的なhtmlです。

アクセストークン、ビスネスIDの取得

めんどくさいのが、こちら。
facebookがinstaを買収?したことで、セキュリティーがガンガンになったので、
結構面倒な手順を踏まないと、アクセストークンと、ビジネスIDは取得できません。。。

こちらの記事が参考記事です。
記述するのも大変なので、頑張ってこちらの手順に従って、やり遂げてください。笑

ざっくりと前提条件

以下の条件を満たしていないと、本記事は意味ないっすよ。

  • Facebookのビジネスページがある
  • instaアカウントがプロアカウントになってる
  • facebookとinstaアカウントの連携が終了している
  • トークンを取得するFacebookアカウントが、管理者か共同開発者になっている

やっとこ色んな記事が出回ってますので、そちらを参考に頑張ってみてください。笑

Related ariticle

関連記事

TOP