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 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に変えれば投稿できました