【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示|Blog|株式会社トライム

Blog

ブログ

Home > ブログ > 【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示

Keyword

Contact

についての不明点や案件のご相談などございましたらお気軽にお問い合わせください。

Share

X Facebook pocket LINE はてなブックマーク

【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示

2017.09.29

記事サムネイル

Sandbox modeで複数ユーザーを表示したい

InstagramのAPI(Sandbox mode)で複数ユーザーの写真を
時系列に表示する方法をご紹介します。まずAPIの基本的な使用方法は下記をご参考ください。
アクセストークンの取得までできていればOKです。

https://try-m.co.jp/blog/jquery/269/

ひとつのClientをそれぞれのアカウントと紐付けるので、
こちらの作業は一度で大丈夫です。

それぞれのアカウントを招待する

新たにClientを作成したら、表示させたいアカウントを招待します。

【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示1

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

【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示2

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

【Instagram API】Sandboxで複数ユーザーの写真を時系列に表示2

先程、「Sandbox Users」に追加したアカウントでログインして、
Sandbox Invites にアクセス。「Accept」をクリック。

以上で準備は完了です。

ソースコード

実際のソースコードになります。
各アカウントのユーザーIDがわからない場合は下記で取得できます。

https://smashballoon.com/instagram-feed/find-instagram-user-id/

PHP

ここで行う処理は下記のようになります。
5、6が今回のキモになります。
そのまま出力するとアカウントごとに並んでしまうので時系列になりません。

  1. 各アカウントのAPIを個別に呼出し
  2. 取得したAPI(JSON)をそれぞれ配列化
  3. 配列化したAPIを結合
  4. created_time(更新日)をキーに割り当て
  5. 更新日順にソート
  6. 出力
<?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++;
  }
  

以上で複数ユーザーの写真を時系列に表示できました。

Share

X Facebook pocket LINE はてなブックマーク
Webサイト制作についてお悩みでしたら私たちにご相談ください。

私たちはECサイトなどのBtoCのサイトの制作に特化したWeb制作会社です。マーケティング視点をもったクリエイティブにより、運用まで見据えた効果の高いWebサイトを構築いたします。Webサイトについてお悩みのWeb担当者の方は、トライムまでお気軽にご相談ください。

Keyword

Contact

についての不明点や案件のご相談などございましたらお気軽にお問い合わせください。

Contact

お問い合わせ

トライムは常にお客様へ寄りっ沿った提案をさせていただきます。
自社のEC売上の拡大や人材不足などのお客様のデジタル上の課題を、
様々なアプローチにより解決するお手伝いをいたします!
お気軽にお問い合わせください。

TEL

03-6403-3259

受付:10:00 - 19:00