FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

Rubyで超カンタンにInstagramのAPIを使う方法

どうもどうも、関です。

今回はInstagramAPIについてサクッと書きます。


まず、こちらからInstagramのアプリを登録してください。すぐ終わります。
そうすると、CLIENT IDとCLIENT SECRETを取得できます。

次に、必要なRubyGemsをインストールします。
便利なことに、RubyにはInstagram用のライブラリが既にあります。
また、今回はSinatraとThinも使います。

gem install sinatra
gem install thin
gem install instagram

ここまでくればもう終わったも同然です。
あとはライブラリを使ってちょろっとソースを書くだけです。
今回は#catで始まるハッシュタグの検索結果上位5つを使って、
それぞれのハッシュタグに対し30件ずつデータを取得するコードを書きました。

require 'sinatra'
require 'instagram'

enable :sessions

Instagram.configure do |config|
  config.client_id = 'xxxxxxxxxxx'
  config.client_secret = 'xxxxxxxxxxx'
end

get '/sample' do
  insta = Instagram.client(:access_token => session[:access_token])
  tags = insta.tag_search('cat')
  medias = []
  5.times do |i|
    medias.concat(insta.tag_recent_media(tags[i].name, { count: 30 }))
  end
  html = ''
  for media in medias
    html << "<img src='#{media.images.low_resolution.url}' style='width: 300px;'>"
  end
  html
end


これを実行すると4567のポートに割り当てられるので、
あとはlocalhost:4567/sampleにアクセスするだけです。
カンタン!