Qiita API v2のapiをrubyで叩いてみた

Qiita API v2をrubyで叩いてみました

事前準備としてGemを2ついれました
bundlerを使って

$ bundle init
$ vim Gemfile

source "https://rubygems.org"

gem "faraday"
gem "json"

$ bundle install -j4

これでGemが入りました
faradayがHTTPクライアントで、
jsonはjsonを扱ってくれるものです

まず、ユーザーの情報を取ってみました
Qiita API v2ドキュメント – Qiita:Developer – Qiita

もっともストックされてるhirokidaichiさんをとってみました
ランキングは
qrank | Qiitaの人気記事ランキング
で確認しました

!#/usr/bin/env ruby

require 'faraday'
require 'json'

conn = Faraday::Connection.new(:url => 'http://qiita.com') do |builder|
  builder.use Faraday::Request::UrlEncoded
  builder.use Faraday::Response::Logger
  builder.use Faraday::Adapter::NetHttp
end

response = conn.get do |request|
  request.url '/api/v2/teams'
end
json = JSON.parser.new(response.body)
p json.parse

jsonがこちら

{"description"=>"", "facebook_id"=>"hirokidaichi", "followees_count"=>80, "followers_count"=>1102, "github_login_name"=>"hirokidaichi", "id"=>"hirokidaichi", "items_count"=>30, "linkedin_id"=>"", "location"=>"", "name"=>"daichi hiroki", "organization"=>"", "permanent_id"=>35671, "profile_image_url"=>"https://gravatar.com/avatar/cc08756798ff94dad86ebc51c1701195?d=https%3A%2F%2Fidenticons.github.com%2F35dce29cf91a19ead1de07e2c3616bd1.png&r=x", "twitter_screen_name"=>"hiroki_daichi", "website_url"=>""}

今度は投稿してみます
アクセストークンがいるので、Qiitaにログインして発行します
プロフィール編集の中に有ります
https://qiita.com/settings/tokens/new
投稿できる権限を与えます

qiita-token

保存するとアクセストークンがもらえます

そして、投稿
Qiita API v2ドキュメント – Qiita:Developer – Qiita
Authorizationのxxxxxxxxxxxxxxxxxxxにアクセストークンをセットします

!#/usr/bin/env ruby

require 'faraday'
require 'json'

param = {
  body: '#sample', coediting: false, gist: false, private: false,
  tags: [], title: 'sample', tweet: false
}

conn = Faraday::Connection.new(:url => 'http://qiita.com') do |builder|
  builder.use Faraday::Request::UrlEncoded
  builder.use Faraday::Response::Logger 
  builder.use Faraday::Adapter::NetHttp 
end

response = conn.post do |request|
  request.url '/api/v2/items'
  request.headers = {
    'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'Content-Type' => 'application/json'
  }
  request.body = JSON.generate(param)
end
json = JSON.parser.new(response.body)
p json.parse

これを実行すると無事、投稿されました
Qiita:Teamに投稿するには、URLをチームのURLに変えれば投稿できました