LoginSignup
23
29

More than 5 years have passed since last update.

絶対に失敗しないinstagramのapiの使い方【入門編】

Last updated at Posted at 2015-12-16

クリスマスまであと約1週間となりました。とても寒い、虚しい.......そんなアナタにinstagramのapiを使っていただきたいです。
サンタコスの写真サイトといったプロトタイプを作りつつ、instagram APIの使い方を伝授致します。
instagram APIの使い方はやり方を知っていれば非常にシンプルです。ただ現状どの記事も簡単にセットアップできる良記事がなかなか見つけられなかったので今回書かせていただきました。
では早速取り組みにかかっていきましょう。
所要時間は15分なのであっという間に導入できますよ。

・サンタコス(例)
216306495_624.jpg
みんなでわいわい楽しそうな写真ですね\(^o^)/

アプリケーション登録をする

リンク: http://instagram.com/developer/
RegisterNewClientID→アプリケーション登録画面へ

・Application Name
アプリ名。重複のない任意の名前を入力します。
・Description
アプリの概要(説明文)
・Website
アプリのサイトURL。適当でもOK
・OAuth redirect_uri
適当でOK
登録が完了すると後ほど使用することになる、CLIENT ID, CLIENT SECRET が表示される

railsのMVC作成

お決まりのnewコマンドからスタート!

rails new samtagram

mysqlのデータベースでいつも開発しているのでmysqlの指定は重要ですね。

gem 'mysql2', '~> 0.3.18'
gem 'instagram'
$bundle install

/config/initializers/instagram.rbを作成

/config/initializers/instagram.rb
require "instagram"
    Instagram.configure do |config|
    config.client_id = "INSTAGRAM_CLIENT_ID"
    config.client_secret = "INSTAGRAM_CLIENT_SECRET"
end

注: INSTAGRAM_CLIENT_IDとINSTAGRAM_CLIENT_SECRETは自分のを使用する

文字列として認証するため""は残しておきましょう。

$rails g controller christmas index
root 'christmas#index'

あとは皆さんがお好きな写真を抽出できるように4つのパターンを用意しています。
どれも面白いのでお時間ある方は全て試してみてください。

パターン① 好きなキーワードで画像表示

/app/controllers/christmas_controller.rb
class ChristmasController < ApplicationController
    def index
        @medias = Instagram.tag_recent_media("サンタコス")
    end
end

※「サンタコス」のところに好きなキーワードを入れると検索結果が集まった写真が表示されます。

以下の様なviewファイルも作りましょう。

/app/views/christmas/index.html.erb
<% @medias.each do |media| %>
  <%= link_to media.link, target: "_blank" do %>
    <%= image_tag(media.images.low_resolution.url) %>
  <% end %>
<% end %>

これでタグ付けされた「サンタコス」の画像でいっぱいになったかと思います。
"サンタコス"と入れた部分を編集してみると楽しいですよ!

パターン② 好きなユーザーの画像を表示

下記のリンクにユーザーネームを指定するとClient_idが取得できる

/app/controllers/christmas_controller.rb
class ChristmasController < ApplicationController
    def index
        @users = Instagram.user_recent_media("Client_id", {count: 4})
    end
end
/app/views/christmas/index.html.erb
<% @users.each do |user| %>
    <%= image_tag(user.images.low_resolution.url) %>
<% end %>

パターン③ 場所のIDから取得

/app/controllers/christmas_controller.rb
class ChristmasController < ApplicationController
    def index
        @place = Instagram.location_recent_media(Location_id, {count: 10})
    end
end
/app/views/christmas/index.html.erb
<% @place.each do |p| %>
  <%= image_tag(p.images.low_resolution.url) %>
<%  end %>

パターン④ ユーザー名からユーザー情報を取得

/app/controllers/christmas_controller.rb
class ChristmasController < ApplicationController
    def index
        @user_name = Instagram.user_search("UserName")
    end
end
/app/views/christmas/index.html.erb
<%= @user_name.each do |name| %>
  <%= image_tag('#{user.profile_picture}')  %>
<% end %>

いかがでしたでしょうか。あっという間にinstagramから沢山写真を引き出してこれたのではないかと思います。
この写真で今年のクリスマスも乗り切れそうですね!
ではよいクリスマスを!!

16082167601_2b142422fb_h.jpg

23
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
29