ColdFusion(CFML)でkintoneから情報を持ってくる
PHPやJavaScriptの方法は検索すればちょっと出てくるんですが、
ColdFusionはさすがにユーザ数が少なすぎたのか出てこなかったので、
自分でやってみました。
やりかた
- サイボウズ公式( https://cybozudev.zendesk.com/hc/ja/categories/200147600-kintone-API )
- ColdFusion公式リファレンス
この2つを見比べながらやるとなんとかなります。
<cfhttp
url="https://○○.cybozu.com/k/v1/records.json"
charset="utf-8"
method="GET"
throwOnError="yes"
result="ResFromkintone"
>
<cfhttpparam type="header" name="Host" value="○○.cybozu.com:443">
<cfhttpparam type="header" name="X-Cybozu-Authorization" value="#Tobase64('ユーザ名:パスワード')#">
<cfhttpparam type="header" name="Content-Type" value="application/json">
<cfhttpparam type="header" name="X-HTTP-Method-Override" value="GET">
<cfhttpparam type="URL" name="app" value="アプリケーションID">
<cfhttpparam type="URL" name="fields[0]" value="フィールドコード">
<cfhttpparam type="URL" name="query" value="適当なクエリ">
</cfhttp>
<cfset KintoneData=DeserializeJSON(ResFromkintone.filecontent)>
<cfloop index="i" from = "1" to = "#ArrayLen(KintoneData.records)#">
<cfoutput>#KintoneData.records[i].フィールドコード.value#</cfoutput><br />
</cfloop>
これだけでデータが取得できてしまいます。便利!
ちなみに、fieldsもqueryも指定せずに実行して、result(上の例だとKintoneData)をcfdumpで表示すると、
アプリ閲覧権限しかない人でもフィールドコード等を調べられます。
<cfhttp
url="https://○○.cybozu.com/k/v1/records.json"
charset="utf-8"
method="GET"
throwOnError="yes"
result="ResFromkintone"
>
<cfhttpparam type="header" name="Host" value="○○.cybozu.com:443">
<cfhttpparam type="header" name="X-Cybozu-Authorization" value="#Tobase64('ユーザ名:パスワード')#">
<cfhttpparam type="header" name="Content-Type" value="application/json">
<cfhttpparam type="header" name="X-HTTP-Method-Override" value="GET">
<cfhttpparam type="URL" name="app" value="アプリケーションID">
</cfhttp>
<cfset KintoneData=DeserializeJSON(ResFromkintone.filecontent)>
<cfdump var="#KintoneData#">
以上です。
あと、SerializeJSON()でデータ登録等も一応できると思いますが、今回は読込できればよかったのでこの辺で!
(CF&kintone環境の人は日本にどれだけいるのでしょうか……)