Upload
kyouhei-kitagawa
View
452
Download
1
Embed Size (px)
Citation preview
kintone ハンズオン体験
サイボウズ株式会社
#kintone
自己紹介
北川 恭平(きたがわ きょうへい)
システムコンサルティング本部に所属し、 Developer むけに kintone を普及させる活動をしています。
開発者向けイベントを企画したり、技術サイトの運営をしたり、会社のブログに記事を書いたりしてます。
1-4 月までアメリカのサンフランシスコで支社の立ち上げ支援をしていました。
• 埼玉県春日部市出身• 中野区在住
Details Favorite• 野球• 読書• 麻雀• コーヒーを挽く• 鰹節を削る• カレーをスパイスから作る
アジェンダ
▌kintone アプリ作成
▌kintone REST API ハンズオン
▌kintone JavaScrip ハンズオン
▌kintone をハッカソンで使う準備
3
ハンズオンに必要となる環境
▌PC▌ネットワーク環境
▌kintone のアカウント(開発者ライセンス or お試し環境)
5
アジェンダ
▌kintone アプリ作成
▌kintone REST API ハンズオン
▌kintone JavaScrip ハンズオン
▌kintone をハッカソンで使う準備
6
kintone アプリの作成
▌主に 3 種類の方法で、すぐにアプリを作成可能
7
① アプリストアから選ぶ
②Excel ファイル
から作る
③ はじめからつくる
シナリオ
▌自分の今いる地点の近くのお気に入りのレストランを検索するシステムを作成する。※時間がないので、今回はスマホアプリは作成しません。
8
アプリ作成の流れ
1. kintone へログインする
2. kintone アプリを作成する
3. CSV を kintone アプリにインポートする
9
1.kintone へログインする
10
kintone アプリ作成
ログイン画面にアクセス
11
https:// サブドメイン .cybozu.com/
ログイン画面にアクセス
12
申請時のメールアドレスでログイン
ログイン完了
クリックして kintone にアクセス
ユーザー情報の管理や cybozu.com 全体に影響する設定
メンテナンス等のお知らせ
13
2.kintone アプリを作成する
14
kintone アプリ作成
新デザイン設定
本ハンズオンは新デザイン前提ですすめます
kintone システム管理 > 新旧デザインの切り替えよりご変更ください
15
ポータル
16
機能の切り替え
自分が作業者のタスク
アカウントやシステムの設定
クリックしてアプリを作成
通知
アプリの作成方法を選ぶ
17
アプリの名前を入力
任意の名前を入力して保存します。例)レストラン情報アプリ
18
一般設定をクリック
「一般設定」でアイコンやデザインを選びます。
19
一般設定
20
好きなアイコンを選びます。画像をアップロードする事もできます。
一般設定
21
アプリグループを使うとアクセス権を一括で設定できます。Public→ 公開用、 Private→ 自分用
アプリの説明を記載しておくと、一覧画面に表示されます。
フォームの編集をクリック
22
「フォームの編集」で画面設計を行います。
フォームの編集
23
• フィールドをドラッグ & ドロップして配置や並び順の変更ができます。
• フィールドの端をドラッグするとサイズが変更できます。• 「歯車アイコン > 設定」から属性の設定ができます。
完成形
24
アプリ情報詳細
25
フィールド名 フィールドコード フィールドタイプ
レストラン名 Name 文字列 (1 行 )リンク Link リンク
備考 Details 文字列 (複数行 )住所 Address 文字列 (1 行 )緯度 lat 数値
経度 lng 数値
一覧の追加をクリック
「一覧の追加」で一覧画面に表示する項目を選びます。
26
一覧の追加
一覧の表示形式を選び、表示するフィールドを設定します。絞り込みにより、一部のレコードだけ表示する事もできます。
27
一覧の追加
28
例として「レストランリスト」と設定します。
設定完了
これで kintone アプリの設定は完了です。設定完了をクリックして、保存してくださ
い。
29
アプリを確認します
30
データの登録
データの削除
3.CSV を kintone アプリにインポートする
33
kintone アプリ作成
読み込む
35
ダウンロードした CSV を選択
36
ファイルの先頭行
37
フィールドの対応付け
38
ファイルの読み込み完了
39
▌kintone アプリ作成
▌kintone REST API ハンズオン
▌kintone JavaScrip ハンズオン
▌kintone をハッカソンで使う準備
40
REST API ハンズオン流れ
1. 環境準備
2. API トークンの準備
3. curl コマンドで情報の取得 (1件 )4. curl コマンドで情報の取得 (queryあり )5. curl コマンドで情報の登録
6. curl コマンドで情報の更新
41
REST API
42
▌kintone をバックエンドのデータベースとしての利用する際に有効
REST API
REST API
▌レコードの取得・追加・更新・削除
▌スペースの作成・更新
▌デプロイ(アプリ作成・設定変更)
43レストラン情報アプリ
レストラン情報登録
レストラン情報取得
API に関する情報
▌REST API の共通仕様
http://goo.gl/CLH3ST
▌フィールド形式
http://goo.gl/55Nhk9
44
1. 環境準備
45
REST API ハンズオン
準備
▌curl コマンドを使える環境
例: Cloud9
46
cloud9 でプロジェクトを作成
47
ターミナルを開く
48
curl
49
▌curl で kintone にアクセスするうえでの基本的なオプションは以下です。
curl -X < メソッド > -H <ヘッダー情報 > -d < パラメータ >
2.API トークンの準備
50
REST API ハンズオン
API トークンの設定
51
API トークンの設定
▌レコード閲覧、レコード追加、レコード編集をチェック
52
保存を忘れずに
53
3.curl コマンドで情報の取得(1件 )
54
REST API ハンズオン
アプリ番号の確認
▌取得したいアプリのアプリ番号を URL より確認
55
https://example.cybozu.com/k/306/
レコード番号の確認
▌取得したいレコードのレコード番号を確認
56
情報まとめ
▌curl コマンドよりこのレコードのデータを取得しますアプリ番号 :306
レコード番号 :12
サブドメイン :example
API トークン :H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK
57
curl コマンドの使い方:curl -X < メソッド > -H <ヘッダー情報 > -d < パラメータ >
リクエスト情報
▌データ取得リクエスト URI : https://example.cybozu.com/k/v1/record.json
クエリ文字列 : app=306&id=12
HTTP メソッド : GET
リクエストヘッダー : X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK
58
▼レコードの取得 (GET)https://cybozudev.zendesk.com/hc/ja/articles/202331474#step1
レコード番号を指定して取得
▌コマンド ( 完成版 )
curl "https://example.cybozu.com/k/v1/record.json?app=306&id=12" -X GET -H "X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK"
※この場合、 content-Type の指定は不要です。
59
結果
▌成功した時のレスポンス
{"record":{"更新日時":{"type":"UPDATED_TIME","value":"2015-09-14T05:40:00Z"},"作成者":{"type":"CREATOR","value":{"code":"Administrator","name":"Administrator"}},"$revision":{"type":"__REVISION__","value":"1"},"文字列__1行_":{"type":"SINGLE_LINE_TEXT","value":"日本橋 お多幸本店"},"更新者":{"type":"MODIFIER","value":{"code":"Administrator","name":"Administrator"}},"lng":{"type":"NUMBER","value":"139.772"},"record_no":{"type":"RECORD_NUMBER","value":"12"},"リンク":{"type":"LINK","value":"http://retty.me/area/PRE13/ARE15/SUB1503/100000006250/"},"文字列__複数行_":{"type":"MULTI_LINE_TEXT","value":"大正13年創業の純関東風おでんの店「日本橋 お多幸本店」。名物は、茶飯の上におでんのつゆをかけ、 その上に豆腐を乗せた「とうめし定食(¥650)」。とろけるような豆腐の下に、甘辛いたれがしみ込んだご飯がまた何とも美味しい。おでんも濃いめの味付けでお酒が進む。"},"作成日時":{"type":"CREATED_TIME","value":"2015-09-14T05:40:00Z"},"Address":{"type":"SINGLE_LINE_TEXT","value":"東京都中央区日本橋2-2-32丁目2番地3"},"$id":{"type":"__ID__","value":"12"},"lat":{"type":"NUMBER","value":"35.6823"}}}
60
4.curl コマンドで情報の取得(queryあり )
61
REST API ハンズオン
クエリを指定してレコードを取得 ( たいめいけんを取得 )
62
アプリ番号の確認
▌取得したいアプリのアプリ番号を URL より確認
63
https://example.cybozu.com/k/306/
クエリ
▌今回はレストラン名 ( フィールドコード name) が”たいめいけん”のフィールドを取得します
64
Name = “ たいめいけん”
リクエスト情報
▌データ取得 ( クエリで条件を指定 )リクエスト URI : https://example.cybozu.com/k/v1/records.json
クエリ文字列 : app=306&query=name= “ たいめいけん“
HTTP メソッド : GET
リクエストヘッダー : X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK
65
▼レコードの一括取得 (GET)https://cybozudev.zendesk.com/hc/ja/articles/202331474#step2
クエリでレコードを指定してレコードを取得
▌コマンド ( 完成版 )curl "https://example.cybozu.com/k/v1/records.json?app=306&query=Name=\" たいめいけん \"" -X GET -H "X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK"※この場合、 content-Type の指定は不要です。
※ クエリ内のダブルクウォートは、 \ でエスケープしてください。
66
結果
▌成功した時のレスポンス
{"records":[{"Name":{"type":"SINGLE_LINE_TEXT","value":" たいめいけん"},"更新日時":{"type":"UPDATED_TIME","value":"2015-09-14T05:40:00Z"},"作成者":{"type":"CREATOR","value":{"code":"Administrator","name":"Administrator"}},"Link":{"type":"LINK","value":"http://retty.me/area/PRE13/ARE15/SUB1503/100000009459/"},"$revision":{"type":"__REVISION__","value":"1"},"Details":{"type":"MULTI_LINE_TEXT","value":"言わずと知れた名店"},"作成日時":{"type":"CREATED_TIME","value":"2015-09-14T05:40:00Z"},"Address":{"type":"SINGLE_LINE_TEXT","value":"東京都中央区日本橋1丁目12番地10"},"lng":{"type":"NUMBER","value":"139.7756"}," 更新者":{"type":"MODIFIER","value":{"code":"Administrator","name":"Administrator"}},"record_no":{"type":"RECORD_NUMBER","value":"13"},"$id":{"type":"__ID__","value":"13"},"lat":{"type":"NUMBER","value":"35.6826"}}],"totalCount":null}
67
5.curl コマンドで情報の登録
68
REST API ハンズオン
新しくデータを登録してみましょう
69
項目 フィールドコード データ
レストラン名 Name サイボウズカフェ
リンク Link http://cybozu.co.jp/備考 Details コーヒーがおいしい
住所 Address 東京日本橋タワー28F
緯度 lat 35.6826経度 lng 139.7723※ 画像はイメージ
です。
リクエスト情報
▌データ登録リクエスト URI : https://example.cybozu.com/k/v1/record.json
HTTP メソッド : POST
リクエストヘッダー : X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK
content-Type:application/json
リクエストボディ : {"app":306,"record":{"Name":{"value":" サイボウズカフェ "},"Link":{"value":"http://cybozu.co.jp"},"Details":{"value":" コーヒーがおいしい "},"Address":{"value":"東京日本橋タワー "},"lat":{"value":35.6826},"lng":{"value":139.7723}}}
70
▼レコードの取得 (POST)https://cybozudev.zendesk.com/hc/ja/articles/202166160
クエリでレコードを指定してレコードを取得
▌コマンド ( 完成版 )curl "https://example.cybozu.com/k/v1/record.json" -X POST -H "X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK" -H "content-Type:application/json" -d '{"app":306,"record":{"Name":{"value":" サイボウズカフェ "},"Link":{"value":"http://cybozu.co.jp"},"Details":{"value":" コーヒーがおいしい "},"Address"{"value":"東京日本橋タワー "},"lat":{"value":35.6826},"lng":{"value":139.7723}}}'
※body の文字列はシングルクウォートでくくって、ダブルクウォートをエスケープしましょう
71
結果
▌レスポンスと登録されたレコード
72
{"id":"16","revision":"1"}
レスポンス
レコード
5.curl コマンドで情報の更新
73
REST API ハンズオン
登録したデータを更新してみましょう
74
項目 フィールドコード データ
レストラン名 Name サイボウズカフェ
< 変更前 >
項目 フィールドコード データ
レストラン名 Name ボウズカレー
< 変更後>
リクエスト情報
▌データ登録リクエスト URI : https://example.cybozu.com/k/v1/record.json
HTTP メソッド : PUT
リクエストヘッダー : X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK
content-Type:application/json
リクエストボディ : {"app":306," ,“id":16," record":{"Name":{"value":" ボウズカレー "}}}
75
▼レコードの取得 (POST)https://cybozudev.zendesk.com/hc/ja/articles/201941784
レコード更新
▌コマンド ( 完成版 )curl "https://example.cybozu.com/k/v1/record.json" -X PUT -H "X-Cybozu-API-Token:H0XFs7YgeGz2GtkKBoZjNj5ddfEZ7s5Pmi2uNcrK" -H "content-Type:application/json" -d '{"app ":306,"id":16,"record":{"Name":{"value":" ボウズカレー "}}} '
※body の文字列はシングルクウォートでくくって、ダブルクウォートをエスケープしましょう
76
結果
▌レスポンスと更新されたレコード
77
{"revision":"2"}
レスポンス
レコード
▌kintone アプリ作成
▌kintone REST API ハンズオン
▌kintone JavaScrip ハンズオン
▌kintone をハッカソンで使う準備
78
JavaScript API
79
▌kintone をフロントエンドのインターフェースとして利用する際に有効
JavaScript
JavaScript API
▌イベントハンドラ(一覧、表示、追加、編集、削除)
▌画面上の値を取得・設定
▌REST API の実行
▌外部 API の実行
レストラン情報アプリ
連携
JavaScript ハンズオン流れ
1. アプリの変更
2. サンプルコード適用
81
JavaScript ハンズオン
今回は、レストラン情報アプリの「住所」を取得して地図にピンを立てます
82
1. アプリの変更
83
JavaScript ハンズオン
新しくフィールドを追加します
84
フィールド名 フィールドコード
フィールドタイプ
- Map スペース
レコード番号 record_no レコード番号
一覧「レストランリスト」にレコード番号を追加します
85
設定完了を忘れずに
86
2. サンプルコード適用
87
JavaScript ハンズオン
cybozu.com developer network サンプル
▌顧客訪問リストを地図にピン表示する
88https://cybozudev.zendesk.com/hc/ja/articles/202341964
developer network のサンプルをエディタにコピー
89
保存
▌文字コード「 UTF-8 」、ファイル名「 map.js 」として保存
90
JavaScript の適用
▌アプリの管理画面「詳細設定」より作成したファイルを読み込ませる
91
カスタマイズ適用確認
▌レコード一覧画面と詳細画面で地図が表示される
92
< レコード一覧画面 >
< レコード詳細画面 >
ハンズオンまとめ
▌自分の今いる地点の近くのお気に入りのレストランを検索するシステムを作成する。→ 今回は、 kintone でレストラン DB の構築、データの出し入れを確認!
GPS と組み合わせれば完成するはず。(実際作ってはいません…)
93
▌kintone アプリ作成
▌kintone REST API ハンズオン
▌kintone JavaScrip ハンズオン
▌kintone をハッカソンで使う準備
94
開発者ライセンスcybozu.com developer network
1年間無料ライセンス
※ アカウント登録が必要です
https://cybozudev.zendesk.com/hc/ja
API ドキュメント
kintone API ドキュメント
Tipscybozu.com developer network
kintone API活用ノウハウ
集
おすすめ Tips
https://cybozudev.zendesk.com/hc/ja/articles/205365464
▌ハッカソンで kintone を使おう!
kintone をよろしくお願いします。ご清聴ありがとうございました。