読者です 読者をやめる 読者になる 読者になる

Septeni Engineer's Blog

セプテーニエンジニアが綴る技術ブログ

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

Ruby 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にアクセスするだけです。
カンタン!