クラウド型 ワークフロー

Box API (Upload File) について

Box の素晴らしい機能を利用するための API を紹介!まずはファイルアップロードのためのAPI。

こんにちわ!矢作です!

 

ある営業部長(私のこと)は、現在、「見積承認フロー」の改善に奮闘中!

 

見積承認フローの改善奮闘 – 見積書PDFファイルをBoxに自動保存 –」と言う記事では、見積承認がされた後、見積書 PDF ファイルが生成され、自動的にそのファイルが Box にアップロードされるという仕組みを構築しました。

 

これをきっかけに Box の機能をいろいろと調べてみたのですが、お客様とのファイルの受け渡しを便利にする素晴らしい機能の存在に気づいたのです…

Box を使ったドキュメントファイルの提出

 

Box を触ってみて、次のようなことを実現できることが分かりました。

 

  • Box に保存したファイルを、Box を利用していないユーザにも公開することができる。
  • ファイルをダウンロードするには、パスワードを求めるような設定もできる。
  • ファイルの公開期限を設定することができる。

 

 

これら 3 つを組み合わせると、Box にアップロードしたドキュメントファイルを安全にお客様に提出できるようになります。

 

  • Box にドキュメントファイルをアップロードし、期限付きで公開する。
  • ダウンロード用 URL とパスワードをお客様に案内する。
  • お客様は、期限内にパスワードを入力してドキュメントファイルを受け取る。

 

パスワードを知っている人にしかファイルをダウンロードできない状態を簡単に作り上げることができます。しかも定められた期限内に、そのファイルをダウンロードしなくてはなりませんので、十分に安全な形でお客様にドキュメントを提出することができます。

 

自動化のための Box API

 

  1. Box にドキュメントファイルをアップロードする
  2. ドキュメントファイルをダウンロードできるようにする
  3. ダウンロード時にパスワードが求められるようにする
  4. ダウンロードの有効期限を設定する

 

これらのことを自動的にできたらいいな〜、API があるかな〜、とワクワクしながら Box API リファレンスを見ていると…やはりありました!

 

1 のファイルをアップロードするには次の API を使用します。この段階で、2〜4に関する設定もできると楽ではありますが、ここではアップロードだけです。

 

Upload File: https://upload.box.com/api/2.0/files/content (POST)
ドキュメント(英語): Upload File

 

2, 3, 4 のようにアップロードしたファイルに対して、何らかの設定を行うには次の API を使用します。

 

Update File Info: https://api.box.com/2.0/files/file_id (PUT)
ドキュメント(英語): Update File Info

 

これらの API を使って自動的に 1〜4 の処理を行うには大まかに次のような流れになります。

 

  • Upload File を使ってファイルをアップロードし、そのファイルID (file_id) を取得する。
  • Update File Info を使って file_id で特定されるファイルに対して設定を行う。

 

本記事では、file_id を取得するところまで説明することにします。

 

Upload File でファイルをアップロード

 

Upload File を使う前に準備しておくべきことは、どのフォルダにファイルをアップロードさせるのかを明確にしておくこと。この API を使う際、フォルダIDを指定する必要があるので、どのフォルダにアップロードするのか決めたら、フォルダIDをメモしておきます。

 

 

フォルダIDが分かれば、前述の Upload File を使ってファイルをアップロードできます。

 

Upload File は multipart フォームデータの形で HTTP リクエスト送信します。リクエストボディには、attribute という名前でフォルダIDやファイル名などの情報を、file という名前でファイルそのものをセットします。

 

Upload File: https://upload.box.com/api/2.0/files/content (POST)
ドキュメント(英語): Upload File

 

attribute は JSON で次のような形式でセットします。

 

{"name":"ファイル名.pdf", "parent":{"id":"フォルダID"}}

 

ちなみに、attribute が file より先になるようにしておく必要があります。

 

このリクエストが成功すると、アップロードしたファイルに関するデータが JSON 形式で返されます。このデータの中に、file_id が含まれているので、次のような形で取り出します(例)。

 

var file_obj = JSON.parse(responseJson);
var file_id = file_obj.entries[0].id;

 

file_id を取得できたら、Update File Info を使ってダウンロードできるようにする設定を行うのですが、それは次の記事で紹介します。

 

今回はここまで!


参考

YAHAGI Hajime の紹介

幸せを生み出すITを追求するクエステトラの一味です。 国産の BPM ソフト Questetra BPM Suite で日本・世界を幸せにしたい。
YAHAGI Hajime の投稿をすべて表示

あわせて読みたい
55.カイゼン Tips の前の記事 見積承認フローの改善奮闘 - 見積書PDFファイルをBoxに自動保存 -
55.カイゼン Tips の次の記事 Box API (Update File Info) について
YAHAGI Hajime の他の記事 内部統制とワークフローの深い関係

アーカイブ

 RSS