インスタグラムの投稿を取得

PHPでインスタグラムの投稿を取得します。
下記のコード内、『InstagramビジネスアカウントのID』と『有効期限無期限のアクセストークン』の2箇所を書き換えてください。

<?php
$instagram = null;
$instagram_business_id = 'XXX'; // InstagramビジネスアカウントのID
$access_token = 'XXX'; // 有効期限無期限のアクセストークン
$post_count = 24;
$query = 'name,media.limit(' . $post_count. '){caption,like_count,media_url,permalink,timestamp,username,comments_count}';
$get_url = 'https://graph.facebook.com/v7.0/' . $instagram_business_id . '?fields=' . $query . '&access_token=' . $access_token;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $get_url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl); 
if($response){
	$instagram = json_decode($response);
	if(isset($instagram->error)){
		$instagram = null;
	}
}
?>

データは配列で取得できますので、ループ処理を行なって各投稿を表示していくことになります。

具体的には次のようなコードになります。

<ul>
<?php
foreach($instagram->media->data as $post):
	$caption = $post->caption;
	$caption = preg_replace('/\n/', '<br>', $caption);
?>
	<li>
		<a href="<?php echo $post->permalink; ?>" target="_blank" rel="noopener noreferrer">
			<span class="thumbnail">
				<img src="<?php if($post->media_type=='VIDEO'){ echo $post->thumbnail_url; } else { echo $post->media_url; } ?>" alt="<?php echo $caption; ?>">
			</span>
		</a>
	</li>
<?php endforeach; ?>
</ul>

あとはCSSでデザインを整えれば完了です!

最後に

初心者の方だと、聞き慣れない単語が多く、各ステップが面倒なので間違えることも多く、時間がかかるでしょう。
しかし一度成功してしまえば、あとはラクですし制作中のどんなサイトでも自由自在にInstagramの投稿を表示させることができます。

この機会にぜひマスターしてください。