apiを提供するあらゆるサービスの データをkintoneと同期する...

26
2016年1月22日 ラフノート株式会社 代表 西小倉宏信 APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集)

Upload: pandeiro245

Post on 16-Apr-2017

1.182 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

2016年1月22日

ラフノート株式会社

代表 西小倉宏信

AP Iを提供するあらゆるサービスの データをk i n t o n eと同期する

R u b yG emを作ってソース公開した話 (コミッター募集)

Page 2: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

自己紹介

会社家庭

http://245cloud.com/

個人https://timecrowd.net/

@pandeiro245

#admin_night

Page 3: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

kintoneとの出会い(2015/12/18)

kintone cafe創始者の斎藤さんに デモを見せてもらって感動@北海道

Page 4: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

kintoneとの出会い(2015/12/18)

parse.com+クライアントJSだけで実装していた仕事効率化アプリが

kintone上でそのまま動いたw

Page 5: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

面白い!

Page 6: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

freeeのデータをkintoneに

https://github.com/pandeiro245/freee2kintone

freeeでOAuthログインして コンソールFreee.syncを実行するだけで

API経由にてデータ同期

Page 7: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

簡単にできた

Page 8: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

freee, Misoca, GitHub twitter, Facebook TimeCrowd, Ruffnote どれも標準化されたAPI仕様にそっているので

汎用的なものを作りたい

Page 9: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

つくりました

Page 10: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

kintoneAPIのレスポンスには 型(type)があるがJSON形式は

文字列か数字化ぐらいの区別しかない{ name: { value: ‘john’, type: ‘SINGLE_LINE_TEXT’ }, age: { value: 30, type: ‘NUMBER’ } }

{ name: ‘john’ age: 30 }

kintone 一般的なAPIが出力するJSON

Page 11: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

JSONレスポンスの型類推

※id系はNUMBERにしてしまうとtweet_idなどが 桁数足りなくなってしまうのでSINGLE_LINE_TEXT

Page 12: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Freee::WalletTxn

Page 13: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Github::Issue(87項目)

Page 14: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

ネスト構造は”_”で繋いでフラット化

[ { id: 1, title: ‘hoge’, user: { name: ‘john’, team_id: 3, } }, ]

id: 1, title: ‘hoge’, user_name: ‘john’, user_team_id: 3,

Page 15: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Github::Issue

Page 16: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

freee

Page 17: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Github

Page 18: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Twitter

Page 19: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Facebook

Page 20: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

副産物

Page 21: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Migrationしたい

できない?

Page 22: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Migrationできるように1.「status」(ドロップダウン)を「_status」に名前変更 2.「status」(ラジオボックス)を作成 3. 「_status」の値が入っているレコードを全件取得し、  それぞれの「status」レコードに同じ値を入れる 4.「_status」を削除

Page 23: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

Migrationできるように

Page 24: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

KintonePortalスペースにはできない(理解でいる) ことを解決するためのカスタマイズJS

・表を10件以上表示したい ・ドロップダウンは編集ボタンを押さずして表示状態から切り替えたい

Page 25: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

KintonePortal

Page 26: APIを提供するあらゆるサービスの データをkintoneと同期する RubyGemを作ってソース公開した話 (コミッター募集) 2016 01-22 kintone cafe東京

ご清聴ありがとうございました!

KintonePortal スペースにアプリを埋め込んだだけではできないことを

実現するためのカスタマイズJavaScript https://github.com/pandeiro245/kintone_portal

KintoneSync APIを提供する色んなサービスのデータを

kintoneと同期するRubyGem https://github.com/pandeiro245/kintone_sync

連絡:[email protected] 西小倉