• ホーム
  • PHP
  • InstagramGraphAPIでインスタ投稿をサイトに表示する【その2】

InstagramGraphAPIでインスタ投稿をサイトに表示する【その2】

PHP

その1で表示に必要なアクセストークンの取得ができました。

表示に必要な主な項目

デザインに合わせて必要な項目をパラメータに設定します。

media_product_type投稿の種別(FEED,IGTVなど)
*公式ドキュメントにはAD, FEED, IGTV, or STORYの記載あり
media_type IMAGE,CAROUSEL_ALBUM, IMAGE
caption 投稿本文
permalink投稿のURL
timestamp投稿日時
media_url投稿の画像URL(VIDEOの時は動画URLが入る)
thumbnail_urlmedia_type VIDEOの時、サムネイル画像のURL

公式ドキュメント

https://developers.facebook.com/docs/instagram-api/reference/ig-media/

APIを使用してデータの取得(v11.0)

v11.0のところは使用バージョンに合わせてください。 media_product_type はv10.0以降取得可能です。

<?php
 $count = 10; //取得件数
 $query = [
    'businessId' =>'【InstagramビジネスID】', // InstagramビジネスID
    'fields' => 'name,media.limit('.$count.'){caption,like_count,media_url,permalink,timestamp,username,thumbnail_url,media_product_type,media_type}',//取得したい項目
    'access_token' => '【アクセストークン3】' // トークン3
 ];

$url = 'https://graph.facebook.com/v11.0/'.$query["businessId"].'?fields='.urlencode($query["fields"]).'&access_token='.$query["access_token"];
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $result = json_decode(curl_exec($ch));
 curl_close($ch);
  
 // エラーが帰ってきた場合
 if (property_exists($result, 'error')) {
     echo 'エラーが発生しました';
     echo $url;
     exit;
 }
 // 投稿がなかった場合
 if (!property_exists($result, 'media')) {
     echo '投稿がありません';
     exit;
 }
  
 ?>

取得した値を表示する

<?php foreach($result->media->data as $v) { ?>

<?php 
// デザインに合わせて必要な項目を出力する
echo $v->permalink;
 ?>

<?php } ?>

キャプションはそのまま表示は長いので、ある程度の文字数でカットしたり、日付表示も好きなフォーマットにしてください。

関連記事