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


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

・サンタコス(例)
![216306495_624.jpg](https://qiita-image-store.s3.amazonaws.com/0/63605/8145bafd-9138-34f1-67ba-8f6675025a25.jpeg "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の指定は重要ですね。

```/Gemfile
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
```

```/config/routes
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が取得できる

http://jelled.com/instagram/lookup-user-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から取得

http://maihamakyo.org/etc/locastagram/index.php

```/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](https://qiita-image-store.s3.amazonaws.com/0/63605/fa6d308b-d671-b0e5-cee2-07fccc8c917c.jpeg "16082167601_2b142422fb_h.jpg")