まずは取得コードを公開!
弊社で現行動いているコードを公開。
ほんと感謝してよね?
アカウントのデータを取得する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アカウントが、管理者か共同開発者になっている
やっとこ色んな記事が出回ってますので、そちらを参考に頑張ってみてください。笑