【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示|Blog|株式会社トライム
【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示
2017.09.29
                                                
                        Sandbox modeで複数ユーザーを表示したい
InstagramのAPI(Sandbox mode)で複数ユーザーの写真を
時系列に表示する方法をご紹介します。まずAPIの基本的な使用方法は下記をご参考ください。
アクセストークンの取得までできていればOKです。
https://try-m.co.jp/blog/jquery/269/
ひとつのClientをそれぞれのアカウントと紐付けるので、
こちらの作業は一度で大丈夫です。
それぞれのアカウントを招待する
新たにClientを作成したら、表示させたいアカウントを招待します。

Client右上の「MANAGE」をクリックします。

Sandboxタブに移動して「Sandbox Users」にアカウントを追加します。

先程、「Sandbox Users」に追加したアカウントでログインして、
Sandbox Invites にアクセス。「Accept」をクリック。
以上で準備は完了です。
ソースコード
実際のソースコードになります。
各アカウントのユーザーIDがわからない場合は下記で取得できます。
https://smashballoon.com/instagram-feed/find-instagram-user-id/
PHP
ここで行う処理は下記のようになります。
5、6が今回のキモになります。
そのまま出力するとアカウントごとに並んでしまうので時系列になりません。
- 各アカウントのAPIを個別に呼出し
 - 取得したAPI(JSON)をそれぞれ配列化
 - 配列化したAPIを結合
 - created_time(更新日)をキーに割り当て
 - 更新日順にソート
 - 出力
 
<?php
 
  $accessToken = 'fb2e77d.47a0479900504cb3ab4a1f626d174d2d'; // 実際のアクセストークンを入力
  // 各アカウントのAPI
  $json1 = file_get_contents('https://api.instagram.com/v1/users/【ユーザーID】/media/recent/?access_token='.$accessToken);
  $json2 = file_get_contents('https://api.instagram.com/v1/users/【ユーザーID】/media/recent/?access_token='.$accessToken);
  $json3 = file_get_contents('https://api.instagram.com/v1/users/【ユーザーID】/media/recent/?access_token='.$accessToken);
  // JSONを配列化
  $obj1 = json_decode($json1);
  $obj2 = json_decode($json2);
  $obj3 = json_decode($json3);
  // 複数の配列を結合
  $obj4 = array_merge($obj1->data, $obj2->data, $obj3->data);
  // created_timeをキーに割り当て
  function keychanger( $arr ) {
    foreach ( $arr as $value ) {
      $k = $value->created_time;
      $v[$k] = $value;
    }
    return $v;
  }
  $obj = keychanger( $obj4 );
  krsort($obj); // 配列をcreated_timeでソート
 
  $i = 0;
  $lastn = 10; // 取得する数
  foreach($obj as $data){
    if ( $i >= $lastn ) break;
    echo '<li><a href="' . $data->link . '" target="_blank"><img src="' . $data->images->low_resolution->url . '" alt="" width="245" height="245"></a></li>';
    $i++;
  }
  
以上で複数ユーザーの写真を時系列に表示できました。
Contact
お問い合わせ
              トライムは常にお客様へ寄りっ沿った提案をさせていただきます。
              自社のEC売上の拡大や人材不足などのお客様のデジタル上の課題を、
              様々なアプローチにより解決するお手伝いをいたします!
              お気軽にお問い合わせください。
            
03-6403-3259
受付:10:00 - 19:00