kintone API

クイックスタート

目次

このクイックスタートでは、4つの簡単なステップで、kintoneのAPIを使ったUIカスタマイズとデータ取得方法の基本を学びます。

Step 1: kintoneサブドメインの取得

まず、kintoneのカスタマイズや連携をテストする環境を用意します。
kintone開発者ライセンスは、開発者がkintone APIを無料で試すための環境です。

kintone開発者ライセンスを取得する

開発者ライセンスを取得したら、この記事に戻ってください。

Step 2: kintoneアプリの作成

取得したkintone環境にログインし、次の手順にしたがってアプリを準備します。
kintoneのポータルから「+」アイコンをクリックし、「顧客リスト」アプリを選択します。
確認画面で確定すると、kintone環境に「顧客リスト」アプリが追加されます。

Step 3: JavaScript API:画面のカスタマイズ

JavaScript APIを使った最も簡単な例として、レコード追加時、備考フィールドの初期値に「こんにちは、kintone!」を表示してみましょう。
アプリの設定を開き、フォームの中から備考フィールドの設定を開きます。
フィールドコードをnoteに設定します。

caution
警告

フィールドコードはコード内で参照されます。大文字・小文字の区別やタイプミスがあると動かないため注意してください。

次のコードをコピーして、hello-kintone.jsで保存します。

1
2
3
4
kintone.events.on('app.record.create.show', (event) => {
  event.record.note.value = 'こんにちは、kintone!';
  return event;
});

カスタマイズファイルを適用して、レコード追加時、備考フィールドの初期値に「こんにちは、kintone!」と表示されることを確認します。

information

コード内のapp.record.create.showは、 レコード追加画面を表示した後のイベント です。
同様に、他の画面や保存時、編集時などさまざまなイベントのAPIがあります。
詳しくは イベント を確認してください。

Step 4: REST API:curlでkintoneのデータを取得

次は、REST APIでkintone上にあるデータを取得します。

アプリIDとレコードIDの確認

APIのリクエストパラメーターには、アプリIDレコードIDを含める必要があります。
これらのパラメーターを確認するには、レコード詳細画面に移動します。
アプリIDとレコードIDは、URLに次のように表示されます。

1
https://<サブドメイン>.cybozu.com/k/<アプリID>/show#record=<レコードID>

例:https://sample.cybozu.com/k/42/show#record=20の場合

パラメーター
サブドメイン sample
アプリID 42
レコードID 20

リクエストURLの確認

REST APIのURLは、次の形式です。

1
https://<サブドメイン>.cybozu.com/k/v1/record.json

例:kintoneサブドメインがsampleの場合
https://sample.cybozu.com/k/v1/record.json

先ほど確認したアプリIDとレコードIDを追加して、最終的なリクエストURLは次の形式になります。

1
https://<サブドメイン>.cybozu.com/k/v1/record.json?app=<アプリID>&id=<レコードID>

これまでの例を組み合わせると、リクエストURLは次のようになります。

1
https://sample.cybozu.com/k/v1/record.json?app=42&id=20

APIトークンの生成

kintone REST APIには、3つの異なる認証タイプがあります。
ここでは、APIトークン認証を使用します。
詳細は、 kintone REST API共通 認証 を参照してください。

「顧客リストアプリ」の任意のページから、右上の歯車アイコンをクリックして、アプリの設定にアクセスします。
「設定」タブを開き、「APIトークン」をクリックします。
新しいトークンを生成し、「保存」をクリックしてから「アプリを更新」をクリックします。

warning
注意

APIトークンをアプリで使用できるようにするには、[アプリを更新]を必ずクリックしてください。

データの取得

これで、次の情報が準備できました。

  • アプリIDとレコードID
  • リクエストURL
  • APIトークン

この情報を使用して、レコードデータを取得するcURLコマンドを次のように組み立てます。
APIトークンで認証する場合は、X-Cybozu-API-Tokenヘッダーを使用します。

1
2
curl -X GET -H 'X-Cybozu-API-Token:<APIトークン>' \
  'https://<サブドメイン>.cybozu.com/k/v1/record.json?app=<アプリID>&id=<レコードID>'

たとえば、サブドメインsampleのアプリ42のレコード20のデータを、APIトークンDjsLvFiyqwDTDxJJSXnNiAuGARpPMnUIYzFluegQで取得する場合、次のコマンドを使用します。

1
2
curl -X GET -H 'X-Cybozu-API-Token:DjsLvFiyqwDTDxJJSXnNiAuGARpPMnUIYzFluegQ' \
  'https://sample.cybozu.com/k/v1/record.json?app=42&id=20'

このコマンドを実行すると、コマンドラインツールは指定されたレコードのデータをJSON形式で返します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{
  "record": {
    "備考": {
      "type": "MULTI_LINE_TEXT",
      "value": ""
    },
    "レコード番号": {
      "type": "RECORD_NUMBER",
      "value": "20"
    },
    "更新者": {
      "type": "MODIFIER",
      "value": {
        "code": "yukako-dambara",
        "name": "後藤 彩子"
      }
    },
    "作成者": {
      "type": "CREATOR",
      "value": {
        "code": "yukako-dambara",
        "name": "後藤 彩子"
      }
    },
    "郵便番号": {
      "type": "SINGLE_LINE_TEXT",
      "value": "5010001"
    },
    "会社ロゴ": {
      "type": "FILE",
      "value": [
        
      ]
    },
    "$revision": {
      "type": "__REVISION__",
      "value": "1"
    },
    "部署名": {
      "type": "SINGLE_LINE_TEXT",
      "value": "情報システム部"
    },
    "担当者名": {
      "type": "SINGLE_LINE_TEXT",
      "value": "下山 達士"
    },
    "メールアドレス": {
      "type": "SINGLE_LINE_TEXT",
      "value": "shimoyama_tatsuhito@example.com"
    },
    "更新日時": {
      "type": "UPDATED_TIME",
      "value": "2021-05-27T01:24:00Z"
    },
    "顧客ランク": {
      "type": "DROP_DOWN",
      "value": "A"
    },
    "住所": {
      "type": "SINGLE_LINE_TEXT",
      "value": "岐阜県岐阜市××××"
    },
    "TEL": {
      "type": "SINGLE_LINE_TEXT",
      "value": "090-××××-××××"
    },
    "作成日時": {
      "type": "CREATED_TIME",
      "value": "2021-05-27T01:24:00Z"
    },
    "会社名": {
      "type": "SINGLE_LINE_TEXT",
      "value": "金都運総研"
    },
    "$id": {
      "type": "__ID__",
      "value": "20"
    }
  }
} 

レスポンスの最初のプロパティはrecordです。
recordプロパティ内のプロパティは、レコード内に存在するフィールドで、特定の順序はありません。

たとえば、キー値ペア "部署名":{"type":"SINGLE_LINE_TEXT","value":"情報システム部"} は、フィールドコード部署名が文字列(1行)フィールドで、値が「情報システム部」を示しています。

このkintoneのデータは、他のサービスとのさまざまな連携に使用できます。

まとめ

わずか4つの簡単なステップで、kintoneのJavaScript APIでのUIカスタマイズとREST APIを使ったデータ取得ができました。
kintoneアプリには、新しいレコードを追加したり、既存のレコードを更新したりするAPIなど、他にも多くのAPIがあります。

次のステップ