見出し画像

【プログラミング】Instagramの基本表示APIを使ってみた

雨が降っていることを言い訳に家から出ずにダラダラと過ごす.時々思いつく妄想で楽しくなるが妄想は妄想で終わり行動には移されない.
自分の頭の中にあるアイディアというのは,自分の頭の中にあるうちは誰もが絶賛してくれるような最高のアイディアである.

たまには少しだけ実際に行動をしてみる.

InstagramのAPIに関して

InstagramのAPIは以下の2点ある.
・InstagramグラフAPI
・Instagramの基本表示API
今回,使ってみたのはInstagramの基本表示API.基本的に以下のリンク先の内容に従えば認証を許可したユーザーの投稿の取得プロフィール情報の取得ができるようになる.

以下に備忘的に少しだけメモ.

実際に取得するデータ

・ユーザーの投稿一覧を取得

// Request

curl -X GET 
'https://graph.instagram.com/v13.0/***user_id***/media?access_token=***access_token***
// Response

{
  "data":
  [
    {"id":"***id1***"},
    {"id":"***id2***"},
    {"id":"***id3***"},
            ・
            ・
            ・
    {"id":"***id25***"},

  ],
  "paging":
    {
      "cursors":
        {
          "before":"***before_cursors***",
          "after":"***after_cursors***"
        },
      "next":"https://graph.instagram.com/v13.0/**user_id***/media?access_token=***access_token***&limit=25&after=***after_coursor***"
  }
}

"data"はinstagramに投稿している各投稿のIDになると思う.実際に投稿の画像を取得したければ,こちらのIDを指定していRequestすることになると思う.(次の段階)
"paging"に関しては一度25件のデータしか取得できない(おそらくデフォルト)なのでそれ以上のデータを取得したければ,pagingを指定してRequestをする必要があると思う.親切なことに"next"の項目で次にRequestしたら良いURLを発行してくれている.

・投稿の取得

// Request

curl -X GET 
'https://graph.instagram.com/***投稿ID***?fields=id,media_type,media_url,username,timestamp,caption&access_token=***access_token***'

※投稿IDは上記一覧から取得,access_tokenは上記と同様

// Response

{
  "id":"***投稿ID***",
  "media_type":"IMAGE",
  "media_url":"**url***",
  "username":"***user_name***",
  "timestamp":"***time_stamp***"
}

"medeia_url"にアクセスすることで実際に投稿された写真を確認できる.
(エスケープ?とかされており少し面倒ですが)

アクセストークンに関して

アクセストークンはデフォルトで1時間しか有効でない.
長期アクセストークン(60日間有効)を取得することもできる.更新可能.

// Request

curl -i -X GET 
"https://graph.instagram.com/access_token?grant_type=ig_exchange_token&client_secret=***client_secret***&access_token=***access_token***"
// Response

{
  "access_token":"***new_access_token***",
  "token_type":"bearer",
  "expires_in":***expires_in***
}

以下のRequestをすることで60日間をさらに延長できるみたい.

// Request

curl -i -X GET "https://graph.instagram.com/refresh_access_token
?grant_type=ig_refresh_token
&access_token=***new_access_token***"

終わりに

簡単なInstagram APIは使用することはできた.ただ,本来やりたい事には到底及ばない事にも気づいた.
実際に行動に移してみると,自分の頭の中にあるアイディアいかに夢物語で合ったかを痛感でき,現実にたたきつけられる.それもまた人生.

頭の中にあるうちは、いつだって、何だって、傑作なんだよな

朝井リョウ 『何者』

全くその通り.少しでもアウトプットをして自分の頭の中と社会の乖離をなくさないと.

PCとスマホ,wifiだけを持って全国をのんびり旅したい.