クラウド型 ワークフロー

Box API (Update File Info) について

Box の素晴らしい機能を利用するための API を紹介!今回は、ファイルにダウンロード用パスワードを設定するAPI。

こんにちわ!矢作です!

 

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

 

お客様とのファイル受け渡しを便利にする Box の機能を利用するための API を調査中ですが、今回は Box にアップロードしたファイルにパスワードなどを設定する方法について紹介します。

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

 

Box API (Upload File) について」に書いた内容のおさらいになりますが、Box の次のような機能を使うと、お客様へのドキュメントファイルの提出が便利になります。

 

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

 

 

これらの機能を他システムから利用することができる、次のような API も用意されています。

 

  • Box にドキュメントファイルをアップロードする (Upload File)
  • ドキュメントファイルにパスワードやダウンロード期限を設定する (Update File Info)

 

Box API (Upload File) について」では、Upload File を使ってドキュメントファイルをアップロードし、そのファイルのファイルID(file_id)を取得する方法を説明しました。

 

本記事では、Update File Info を利用して、ファイルIDで特定されるファイルに、パスワードやダウンロード期限を設定する方法を紹介します。

 

Update File Info でダウンロードパスワードを設定

 

Update File Info は次のような URL に対して HTTP リクエストを送信することで実行されます。

 

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

 

URL の中に file_id という箇所は、対象となるファイルのファイルIDに置き換えます。file_id が 012345678901 であれば、

 

https://api.box.com/2.0/files/012345678901

 

に対して HTTP リクエストを PUT メソッドを使って送信します。

 

リクエストボディにはセットしたい情報を記述したテキストを JSON 形式で記述します。ダウンロード用のパスワードとダウンロード期限を表す変数をそれぞれ down_load_password, download_limit とした場合、次のようなJSONになります。

 

{
  "shared_link":{
    "access":"open",
    "password":download_password,
    "unshared_at":download_limit,
    "permissions":{
      can_download:true
    }
  }
}

 

対象のファイルの共有リンク(ダウンロード用URL)に関する設定は、shared_link というオブジェクトで設定します。それぞれのパラメータは次のような意味を持ちます。

 

パラメータ 説明
shared_link.access アクセスレベルを open, company, collaborators のいずれかを指定。今回のように誰にでもアクセスできるようにするには open を指定。
shared_link.password ダウンロード用 URL にアクセスするためのパスワードを指定。
shared_link.unshared_at ここで指定した日付になると、ダウンロード URL が無効になる。
shared_link.permissions.can_download ダウンロード用 URL にアクセスした時に、ファイルがダウンロードされるようにするかどうかを true/false で指定。 true を指定するとダウンロードできるようになる。

 

Update File Info では、ファイルに関する多くの情報を設定・変更(ファイル名など)できます。ここでは、ファイルのダウンロードに関することだけを紹介しています。

 

Update File Info の HTTP リクエスト送信が成功すると、ファイルに関する情報が JSON 形式で返されます。その情報の中にダウンロード用 URL が含まれますので、この URL をお客様に案内してあげれば良い、ということになります。

 

ダウンロード用 URL の取得方法は次の通り(例)。

 

var file_obj = JSON.parse(responseJson);
var download_url = file_obj.shared_link.download_url;

 

 

冒頭にも述べたように、「Box API (Upload File) について」で書いた Upload File と、今回説明した Update File Info を組み合わせることで、

 

  • Box にドキュメントファイルをアップロードする (Upload File)
  • ドキュメントファイルにパスワードやダウンロード期限を設定する (Update File Info)

 

という事が、他システムからの連携で実現できることが分かりました。これらの処理を見積承認フローから自動的に行う仕組みを作ることを考えたいと思います。

 

今回はここまで!


参考

 

YAHAGI Hajime の紹介

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

あわせて読みたい
55.カイゼン Tips の前の記事 Box API (Upload File) について
55.カイゼン Tips の次の記事 見積承認フローの改善奮闘 - 安全なファイルの提出(仕様の整理) -
YAHAGI Hajime の他の記事 仕事がはかどる 3 つの HTML タグ

アーカイブ

 RSS