require 'oauth2' require 'faraday' require 'faraday_middleware' require 'base64' # Initialize options = { site: 'https://api.freee.co.jp', authorize_url: '/oauth/authorize', token_url: '/oauth/token' } client = OAuth2::Client.new(YOUR_APP_ID, YOUR_SECRET, options) do |conn| conn.request :url_encoded conn.request :json conn.response :json, content_type: /\bjson$/ conn.adapter Faraday.default_adapter end # Getting authorized AUTHORIZATION_BASE64_PACK = Base64.encode64("#{YOUR_APP_ID}:#{YOUR_SECRET}").gsub("\n", '') params = { grant_type: 'authorization_code', code: AUTHORIZATION_CODE, redirect_uri: YOUR_REDIRECT_URI, headers: { 'Content-Type' => 'application/json', 'Authorization' => "Basic #{AUTHORIZATION_BASE64_PACK}" } } token = client.get_token(params).token access_token = OAuth2::AccessToken.new(client, token) # GET /api/1/users/me access_token.get('/api/1/users/me?companies=true').response.env[:body] # { # "user" => # { # "email" => "freee@freee.co.jp", # "display_name" => "freee太郎, # "first_name" => "太郎", # "last_name" => "freee", # "first_name_kana" => "たろう", # "last_name_kana"=> "ふりー" # "companies" => # { # "id" => "12345", # "display_name" => "freee株式会社", # "role" => "default" # } # } # } # GET /api/1/companies/:id access_token.get('/api/1/companies/12345?details=true').response.env[:body] # { # "company" => # { # "id" => 12345, # "name" => "freee株式会社, # "name_kana" => "ふりーかぶしきがいしゃ", # "display_name"=> "freeeカブシキガイシャ", # "role" => "default", # "account_items" => {...}, # "taxes" => {...}, # "items" => {...}, # "partners" => {...} # }