以前、下記でFeedlyとSlackの連携にZapierを利用しましたが、今回はkintoneとの連携(ファイルアップロード)でも利用したのでまとめてみました。

Zapierとは
Zapierは、いわゆるiPaaSと呼ばれているもの1つです。iPaaSとは「Integration Platform as a Service」の略で、異なるアプリケーション同士をつなげ、データを統合したりシステムを連携させたりすることができるクラウドサービスです。
Feedlyのフィードを自動でSlackへ投稿
kintoneとは
kintone(キントーン)は、開発の知識がなくても自社の業務に合わせたシステムをかんたんに作成できる、サイボウズのクラウドサービスです。業務アプリを直感的に作成でき、チーム内で共有して使えます。社員間のつながりを活性化する社内SNSとしての機能も備えているため、スピーディーに情報共有ができます。
kintoneとは? – kintone ヘルプ

超簡単に言うと、データベース(レコードとフィールド)に対するフォームと一覧をノーコードで作成することができる、クラウドサービスです。APIも充実しており、Zapierなどの外部サービスとの連携も容易にできます。
kintoneでのファイルアップロード
リクエストの仕様は下記の通りです。この仕様を、Zapierでどのように設定するかがポイントとなります。
HTTP メソッド
・POST
URI
・https://(サブドメイン名).cybozu.com/k/v1/file.json
リクエスト形式
・リクエストは multipart/form-data 形式で送信します。 詳細は RFC1867、RFC2388 を参照してください。
・Content-Disposition 内の name には「file」、filename にはファイル名を指定してください。
※日本語ファイル名の場合は UTF8 でエンコードした内容を指定して下さい。
ファイルアップロード – cybozu developer network
Zapierの設定
Choose App & Event
- App: Webhooks by Zapier: 任意のWebAPIにリクエストを実行する機能です。
- Event: POST: 仕様通り。

Customize Request
- URL: https://(サブドメイ名).cybozu.com/k/v1/file.json: 仕様通り。
- Payload Type: Form: 仕様通。(multipart/form-data 形式)
- File: ファイル(URLでもZapierがうまくやってくれる)
- Headers:
- Key: X-Cybozu-API-Token
- Value: kintoneから取得したAPIトークン

Send Data
上記のリクエストが成功すると、下記のようにアップロードされたファイルのファイルキーが返されます。 ファイルキーは、レコード登録やレコード更新を行なうAPIで添付ファイルフィールドの値として使用します。
{ "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6" }Code language: JSON / JSON with Comments (json)
Zapierでテストすると、下記のようにファイルキーが取得できていることがわかり、後続のアクションで、このファイルキーが利用できるようになります。

最後に
そもそもZapierには下記のようにkintoneのAppがあり、当然レコード登録イベントもあります。しかし、このレコード登録イベントではファイル登録ができなかったため、別途ファイルアップロードの方法から調べてみました。時代はノーコード開発!?



