クラウド型 ワークフロー

Box API (Get File Info) について

ファイルのダウンロード数を自動取得できると、業務改善の可能性は更に広がる!

こんにちわ!矢作です!

 

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

 

今回はクラウドストレージサービスの Box の気になる API について調べたことを書きます。

 

Box にアップロードしたファイルの情報を取得する API (Get File Info) なのですが、ファイルの情報を自動的に取得できるようになると、業務改善のアイデアがまた湧いてきますね。

クラウド型ワークフロー Questetra BPM Suite を利用

 

Box の API にアクセスする動作を確認するために、クラウド型ワークフロー「Questetra BPM Suite」を使うことを前提として進めます。

 

「Questetra BPM Suite」上で利用していただけるアプリもダウンロードできるようにするので、実際に使ってみたい!と言う人は、Questetra BPM Suite 無料版をお申込みください。

 

ファイルのダウンロード回数を取得できる

 

Box にアップロードされたファイルをクリックしたり、プレビュー画面を表示させたりすると、そのファイルの詳細な情報を見ることができます。

 

 

ファイルの公開期限、所有者、アップロードされた日、プレビュー数、ダウンロード数などの情報を見ることができます。

 

ここで私(矢作)が注目したのはダウンロード数です。このダウンロード数を見れば、お客様がファイルを受けってくれたのか、まだ受け取っていないのか、が分かります。

 

もし、自動的にダウンロード数を取得することができれば、その値が 0 の時、ファイルのダウンロードを期限までにしていただくようにお客様に案内を出すことが自動的にできるようになります。

 

Get File Info を使ってダウンロード数を取得する

 

Box にアップロードされたファイルの情報を取得するには、Get File Info という API を利用します。次のような URL に HTTP リクエストを送信すると、ファイルの情報が JSON 形式で返されます。

 

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

 

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

 

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

 

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

 

Get File Info の HTTP リクエスト送信が成功すると、ファイルに関する情報が JSON 形式で返されます。この情報の中に、ダウンロード数が含まれています。

 

ダウンロード数(download_count)の取得方法(例)は次の通りです。

 

var file_obj = JSON.parse(httpResponse.getResponseAsString());
var download_count = file_obj.shared_link.download_count;

 

Questetra BPM Suite を使って Get File Info を試す

 

それでは、実際に Questetra BPM Suite から Box の Get File Info API にアクセスしてみましょう。

 

最初に、Questetra BPM Suite で作成したアプリから Box の API を利用できるように、Oauth 2.0 の設定を行っておいてください。具体的な方法をご存知でない人は、「Box OAuth2.0 設定について」を参考にしてください。

 

Questetra BPM Suite では、file_id をセットするヒューマン工程と Get File Info API にアクセスする処理が書かれたスクリプト工程だけが配置されたワークフローを作成します。

 

 

「set file_id」工程では、Box にアップロードされたファイルの file_id を入力できるようにします。

 

用意しておくデータ項目は次の 3 つ。

 

  • file_id (文字型):アップロードされたファイルの file_id を入力。
  • file_JSON (文字型):Get File Info API にアクセスして得られたファイル情報を格納。
  • download_count (数値型):ダウンロード数を格納。

 

そして、「Get File Info」スクリプト工程には次のようなスクリプトを書くことで、データ項目「file_id」に入力された file_id で特定されるファイルのダウンロード数がデータ項目「download_count」にセットされます。
※エラーハンドリングは全く行っていません。

 

var file_id = engine.findDataByVarName("q_file_id");

var token = httpClient.getOAuth2Token("*****"); //***** は OAuth2.0 設定の名称
var response = httpClient.begin()
      .bearer(token)
      .get("https://api.box.com/2.0/files/" + file_id);

engine.setDataByVarName("q_file_JSON", response.getResponseAsString());

var file_obj = JSON.parse(response.getResponseAsString());
engine.setDataByVarName("q_download_count", new  java.math.BigDecimal(file_obj.shared_link.download_count));

 

次の図は、今回作成したアプリを動かして、私(矢作)が用意した Box に保存されたファイル(file_id = 259524991823)のダウンロード数が 2 であることが分かった様子を示すものです。

 

 

 

Box の Get File Info API を使うことで、自動的にファイルのダウンロード数を取得できることが分かりました。途中にも書いたように、ダウンロード数が 0 であることが分かれば、お客様にダウンロードを促すことも自動的に行えるような仕組みを作ることができます。

 

今後は、Get File Inf API を使った業務改善にも取り組みます。

 

作成したアプリはここからダウンロードできるので、Get File Info API の動きを見てみたい人は是非お試しください。その際、OAuth2.0 の設定や Box 側の設定を行う必要がありますが、これらの設定はご自身でお願いします。

 

今回はここまで!


参考

YAHAGI Hajime の紹介

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

あわせて読みたい
55.カイゼン Tips の前の記事 見積承認フローの改善奮闘 – 見積書ファイルの自動提出 –
55.カイゼン Tips の次の記事 Box ダウンロード数を取得する自動工程の開発
YAHAGI Hajime の他の記事 ワークフロー選定ポイント G Suite 連携

アーカイブ

 RSS