■目次
Instagram API について事前調査Instagram API の使用例
■Instagram API について事前調査
■自身のアカウントの写真を表示させるだけの場合 自身のアカウントの写真を表示させるだけ…ならサンドボックスモードが使えて、これなら審査は不要 できることは以下に限られる ・取得可能なのは、作成アプリケーションに対してユーザー登録したユーザーの最新の20投稿のデータ (タグで絞り込む場合「最新20件の中の特定のタグがついた画像」となる) ・1つのアプリにユーザー登録することができるのは最大10人まで ・データを呼び出せるのは1時間に500回まで Instagram APIを使ってインスタグラムの画像をウェブサイト上に表示する | 株式会社チップディップ https://www.tipdip.jp/tips_posts/production/1928/ Instagram APIを使ってWEBサイトに写真を表示させてみよう|株式会社カポタスト https://capotast.co.jp/article/detail/21/ Instagram APIのJavascriptでの使い方とSandbox modeで出来る範囲(2016年5月現在) | あらかぜ手帖 http://arakaze.ready.jp/archives/3431 ■他ユーザの写真も表示させる場合 InstagramのAPIは審査が非常に厳しいことで有名 「審査を通してくれるなら10万円払います」という案件もあるくらい。らしい 簡易に扱うためのWebサービスもあるが、写真のリンク先がInstagramではなく、その会社のサービス…など落とし穴に注意 「Instagram対応できます」と簡単に言うとトラブルの可能性が非常に高いと思われる 以下、ざっと調べた事例 Instagram APIの審査を通した人に話を聞いてみた。 - SNS研 http://socialmedia-marketing.argyle.jp/instagram/instagramapi/ 注意 「一回で通ることは本当に稀だと思います。アーガイルは3ヶ月で7回落ちました」 「APIの審査を通してくれたら10万円というクラウドソーシングの案件を見かけましたが絶対に見合わない」 Instagramの画像をwebサイトに表示させる3つの方法 http://insta-antenna.com/method-picture-display 注意 「比較的低コストで使える2つのサービスを紹介します」 「前述のCAMPiNは月額2万円〜ですが、こちらは月額5万円〜で、オプションを追加することでtwitterの投稿も収集可能です。」 instagramのアカウントページをブログパーツとしてサイトに貼る方法「InstaWidget」 https://webmist.info/instagram-blogparts/ 注意 「利用するにあたって留意しなくてはいけない事は、 プロフィール写真や各写真をクリックした時に飛ぶページは instagram 公式ではなく InstaWidget のページであるという事です」
■Instagram API の使用例
※サンドボックスモードで自身のアカウントの写真を表示させる ■開発者登録 https://www.instagram.com/developer/ 「Register Your Application」から開発者登録 ウェブサイト: http://refirio.org/ Phone number: (自身の電話番号) What do you want to build with the API?: Display Picture on my website. 「I accept the API Terms of Use and Brand Guidelines」にチェックを入れて「Sign up」 ■クライアント(アプリケーション)登録 再度「Register Your Application」をクリックするとクライアントの管理ページへ移動する 「Register a New Client」からクライアントを登録する Detailsタブ Application Name: Display Pictures Description: Display Picture on refirio.org Website URL: http://refirio.org/ Valid redirect URIs: http://refirio.org/memos/instagram/picture/ Securityタブ Disable implicit OAuth: (チェックを外す…が、それでいいのかは要調査) Type the words above: (画像の文字を入力) それぞれ入力して「Register」 以下のように、アプリケーションの情報が表示される Display Pictures CLIENT ID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx CLIENT STATUS Sandbox Mode 「CLIENT ID」が発行されたことを確認する ■アクセストークンの取得 以下のURLにアクセスする https://api.instagram.com/oauth/authorize/?client_id=【CLIENT ID】&redirect_uri=【Valid redirect URIs】&response_type=token 具体的には以下のようになる https://api.instagram.com/oauth/authorize/?client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&redirect_uri... This app is in sandbox mode and can only be authorized by sandbox users. Hi _refirio, Display Pictures is requesting to do the following: Access your basic informationYour media & profile info と書かれたページに飛ぶので、「Authorize」をクリック 以下にリダイレクトされる。アクセストークンが取得される http://refirio.org/memos/instagram/picture/#access_token=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy このトークンを使ってプログラムを作成する ■プログラム例 最新の6件を表示する例(Instagramから取得する時点で件数制限はできそう)
<?php // アクセストークンからInstagramのデータをjsonで取得 $json = file_get_contents('https://api.instagram.com/v1/users/self/media/recent/?access_token=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'); $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); // JSONを配列に変換 $array = json_decode($json, true); // 写真を表示 echo "<!DOCTYPE html>\n"; echo "<html>\n"; echo "<head>\n"; echo "<meta charset=\"utf-8\">\n"; echo "<title>Instagram</title>\n"; echo "</head>\n"; echo "<body>\n"; echo "<h1>Instagram</h1>\n"; echo "<p>\n"; $i = 0; foreach ($array['data'] as $data) { echo "<a href=\"" . $data['link'] . "\" target=\"_blank\"><img src=\"" . $data['images']['thumbnail']['url'] . "\">\n"; if (++$i >= 6) { break; } } echo "</p>\n"; echo "</body>\n"; echo "</html>\n"; exit;
■参考ページ Instagram APIを使ってインスタグラムの画像をウェブサイト上に表示する | 株式会社チップディップ https://www.tipdip.jp/tips_posts/production/1928/ 注意 「Instagram APIのアクセストークンは有効期限を明確に指定していません。 しかし、アクセストークンが永久に有効であると仮定しないでくださいという注意書きも行なっています。」 Wordpress & instagram API ハッシュタグで画像取得したいだけなのに…結局 Instagram Feed proが解決してくれた | それだよ http://es.istgut.jp/web-tools/instagram-api.html 注意 「新API基準では、sandbox modeとやらで、取得できる画像が最新20件になったようです。 これを特定のタグで絞り込んだら、「最新20件の中の特定のタグがついた画像」しか表示されないわけです。 せめて、「特定のタグがついた最新20件」ならまだ救いはあったのに。」