kintone(日本の) は cybozu.com という運用基盤の上で動いています。
kintone を設定するには、この運用基盤の理解が必要になってくるので、提供されている User API を Ruby から叩いて試してみました。
エクスポート
- cybozu.com共通管理者のみ実行できます。
ユーザーエクスポート API(JSON)
users.rb
require 'rubygems'
require 'bundler/setup'
require 'dotenv/load'
require 'net/http'
require 'uri'
require 'json'
require 'base64'
require 'pp'
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/users.json?size=100"
uri = URI.parse(url)
pass_auth = Base64.strict_encode64("#{ENV['UID']}:#{ENV['PASS']}")
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) {|http|
res = http.get("#{uri.path}?#{uri.query}", {'X-Cybozu-Authorization' => pass_auth})
res.each_header do |name, val|
puts "name=#{name}, val=#{val}"
end
case res.code.to_i
when 200
pp JSON.parse(res.body)
else
pp %Q(#{res.code} #{res.message})
pp JSON.parse(res.body)
end
}
役職エクスポートAPI
- CSVのみです。
csv_title.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/csv/title.csv"
uri = URI.parse(url)
pass_auth = Base64.strict_encode64("#{ENV['UID']}:#{ENV['PASS']}")
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) {|http|
res = http.get(uri.path, {'X-Cybozu-Authorization' => pass_auth})
res.each_header do |name, val|
puts "name=#{name}, val=#{val}"
end
case res.code.to_i
when 200
puts res.body
else
pp %Q(#{res.code} #{res.message})
pp JSON.parse(res.body)
end
}
組織エクスポート API(JSON)
organizations.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/organizations.json?size=100"
uri = URI.parse(url)
pass_auth = Base64.strict_encode64("#{ENV['UID']}:#{ENV['PASS']}")
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) {|http|
res = http.get("#{uri.path}?#{uri.query}", {'X-Cybozu-Authorization' => pass_auth})
res.each_header do |name, val|
puts "name=#{name}, val=#{val}"
end
case res.code.to_i
when 200
pp JSON.parse(res.body)
else
pp %Q(#{res.code} #{res.message})
pp JSON.parse(res.body)
end
}
グループエクスポート API(JSON)
group.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/groups.json?size=100"
ユーザーの所属組織エクスポート API(JSON)
- リクエストパラメーターにユーザーのコードを渡します。
user_organizations.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/user/organizations.json?code=honda"
ユーザーの所属グループエクスポート API(JSON)
- リクエストパラメーターにユーザーのコードを渡します。
user_groups.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/user/groups.json?code=honda"
組織の所属ユーザーエクスポート API(JSON出力のみ)
- リクエストパラメーターに組織のコードを渡します(必須)
organization_users.rb
url = "https://#{ENV['SUBDOMAIN']}.cybozu.com/v1/organization/users.json?code=0001"
環境
- macOS 10.13.6
- ruby 2.5.0