開発者用アカウントを作ったまま放置していたのでちょっと触ってみた。
サンプルに使ったアプリ
FAQアプリを使ってみました。
https://kintone-apps.cybozu.co.jp/023-faq.html
ユーザー認証
参考:https://cybozudev.zendesk.com/hc/ja/articles/201941754#step7
APIトークンを[アプリ > アプリの設定]から設定する。
[アプリを更新]を実行しないとトークンが有効にならないので要注意。
##レコードを取得する
参考:https://cybozudev.zendesk.com/hc/ja/articles/202331474
ヘッダーにX-Cybozu-API-Token: YOUR_TOKEN
をつけてGETする。
curl -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID" | jq .
戻り値は以下の通り。
{
"records": [
{
"文字列__複数行__1": {
"type": "MULTI_LINE_TEXT",
"value": ""
},
"カテゴリー": {
"type": "CATEGORY",
"value": [
"採用"
]
},
"文字列__複数行__0": {
"type": "MULTI_LINE_TEXT",
"value": "やってません。"
},
"レコード番号": {
"type": "RECORD_NUMBER",
"value": "1"
},
"更新者": {
"type": "MODIFIER",
"value": {
"code": "Administrator",
"name": "Administrator"
}
},
"作成者": {
"type": "CREATOR",
"value": {
"code": "Administrator",
"name": "Administrator"
}
},
"文字列__複数行_": {
"type": "MULTI_LINE_TEXT",
"value": "採用やってますか?"
},
"$revision": {
"type": "__REVISION__",
"value": "1"
},
"更新日時": {
"type": "UPDATED_TIME",
"value": "2017-02-22T16:49:00Z"
},
"作成日時": {
"type": "CREATED_TIME",
"value": "2017-02-22T16:49:00Z"
},
"$id": {
"type": "__ID__",
"value": "1"
}
}
],
"totalCount": null
}
##取得するフィードを指定する
fields
クエリを使用すると、レスポンスの内容を指定できる。
curl -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID&fields=カテゴリー,文字列__複数行_,文字列__複数行__0" | jq .
これで見やすくなった。
{
"records": [
{
"カテゴリー": {
"type": "CATEGORY",
"value": [
"経理"
]
},
"文字列__複数行__0": {
"type": "MULTI_LINE_TEXT",
"value": "担当者に連絡してください。"
},
"文字列__複数行_": {
"type": "MULTI_LINE_TEXT",
"value": "経費申請はどうしたらいいですか?"
}
},
{
"カテゴリー": {
"type": "CATEGORY",
"value": [
"採用"
]
},
"文字列__複数行__0": {
"type": "MULTI_LINE_TEXT",
"value": "やってないったらやってないです。"
},
"文字列__複数行_": {
"type": "MULTI_LINE_TEXT",
"value": "本当にやってないんですか?"
}
},
{
"カテゴリー": {
"type": "CATEGORY",
"value": [
"採用"
]
},
"文字列__複数行__0": {
"type": "MULTI_LINE_TEXT",
"value": "やってません。"
},
"文字列__複数行_": {
"type": "MULTI_LINE_TEXT",
"value": "採用やってますか?"
}
}
],
"totalCount": null
}
取得するデータを絞り込む
query
というクエリをつけることで、取得するデータを絞り込むことができます。
FAQアプリの質問文(F)は"文字列__複数行_"に格納されている様子ですので、質問文で検索してみます。
###実行するクエリ
文字列__複数行_ like "採用"
これをUTF-8でエンコードして、queryに渡してやります。
curl -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID&fields=カテゴリー,文字列__複数行_,文字列__複数行__0&query=%E6%96%87%E5%AD%97%E5%88%97__%E8%A4%87%E6%95%B0%E8%A1%8C_%20like%20%22%E6%8E%A1%E7%94%A8%22" | jq .
「採用」というキーワードが入っているデータのみ引き出せているのがわかるかと思います。
{
"records": [
{
"カテゴリー": {
"type": "CATEGORY",
"value": [
"採用"
]
},
"文字列__複数行__0": {
"type": "MULTI_LINE_TEXT",
"value": "やってません。"
},
"文字列__複数行_": {
"type": "MULTI_LINE_TEXT",
"value": "採用やってますか?"
}
}
],
"totalCount": null
}
とりあえずここまで。