HomeRPAブログページBizRobo!活用例Box連携 〜ロボット化に必要なAPIを検討、仕様確認〜

BizRobo!ブログ

こんにちは。

自称)BizRobo!エンジニアのもりりんです。

夏もそろそろ終わりで、秋に突入ですね。
今年もあと4ヶ月です。(え?まだ早い?)
......
....
..

では気を取り直して、BizRobo!からBoxにファイルをアップロードしよう 〜概要編〜で紹介した第2弾、ロボット化に必要なAPIを探していきましょー。


前回の記事では、BoxサービスのWebAPIを利用するために必要な作業をご説明しました。

必要な情報(=アクセストークン)を取得後に、BoxAPIのPostmanを利用した使い方を簡単に紹介していますが、BoxAPIには200を超えるAPIが存在するためどれを選んでいいか分からないかと思います。

今回は、目的のロボットを開発するためにどんなAPIが必要なのかを検討した後に、BoxのAPIリファレンスから探していきます。

と、その前に注意事項です。

BoxAPIの開発者登録をされていない方は、1つ前の記事をお確かめの上、必要な準備を整えてください。
Box連携 〜BoxAPIのアカウント登録、事前準備編〜


今回のチャプターはコチラです。

  1.  ロボットの作業フローを整理する
  2.  目的に合いそうなAPIをリファレンスから探す

ではでは、進めていきましょー。


1.ロボットの作業フローを整理する


まずは、どんなロボットの実行フローにするのか整理しましょう。

概要編で提示した想定する簡易フローはコチラです。
Boxアップロード After2

 

BoxAPIを利用する箇所は、このフローで言うと④になります。
では、この④の手順をもう少し細分化すると以下のように分解することができます。

  1. アップロードしたいフォルダの有無をチェックする
  2. フォルダがない場合、必要なフォルダを作成する(※1つ前のフォルダもない可能性は考慮
  3. ファイルをアップロードする(※50MBまでを想定)

 

上記のように軽く細分化するだけで、必要な機能を3つに絞り込むことができました。
次はこれらの要望に沿うAPIがあるかチェックしていきましょう。

 

2.目的に合いそうなAPIをリファレンスから探す


API一覧が載っているAPIリファレンスページを表示しましょう。
日本語ページなので、比較的わかりやすいと思います。

BOX API一覧

 

フォルダを検索するAPI

まずは、この中からフォルダを検索する機能を探すと「Folders」がすぐ見つかるので、「フォルダ情報を取得」をチェックしていきましょう。

ざっと見ると、利用時のURL、パラメータ(検索条件)、レスポンス等のサンプル情報を確認できます。

BOX API Folders俯瞰

 

ここでフォルダ指定の方法をよく確認すると、フォルダ名ではなく、フォルダIDが必須となっています。

そうなると、アップロード先のフォルダIDを知らないと操作できないことになります。
毎回フォルダIDを事前に確認しなければいけないなんて面倒ですよね。

BOX API パラメータ

 

では、他に方法がないか確認してみると、ページの(結構)下に「検索」の項目を見つけることができます。
その中の「コンテンツを検索」に記載されているAPIを利用することで、ファイルやフォルダ名を文字列で指定して検索することが可能です。 

 BOX API 検索 俯瞰

 

試しにPostmanで検索APIを実行してみましょう。
今回は検索条件に「query」「fields」「type」の3種類を指定します。

 項目 概要  値 (例)
 query  検索条件(シングルかダブルクォーテーションを付加します)  "個人"
fields  1項目の表示情報   id,type,name→初期値
parent→親階層の情報
 type 検索対象をファイルかフォルダに限定  file or folder 

 

フォルダ検索でフォルダIDを利用していることを考慮すると、レスポンスから「フォルダ名、フォルダID」を取得できるため、この作業以降の操作は問題ないと判断できます。

Postman 検索

 

フォルダを作成するAPI

続いて、フォルダを作成するAPIは、先程の「Folders」にあるので、簡単に確認します。
リクエスト時のメソッドが「POST」となるため、フォルダ名はBodyに埋め込んで送信する必要があるため注意してください。

必須パラメータは、「フォルダ名」「親フォルダID」の2つとなっています。
フォルダ名には、利用できない文字があるため、対象のAPIページを確認してください。

BOX API フォルダ作成 俯瞰

 

ファイルをアップロードするAPI

最後に、ファイルをアップロードするためのAPIを確認します。
ファイルのアップロードの注意点は、ファイル容量が50MBを超えているかどうかです。

50MB以下の場合はアップロードAPIを1回実行するだけで問題ありませんが、50MBより大きい場合は分割アップロードAPIを実行する必要があるため工程が少し複雑になります。 

今回は50MB以下のファイルを想定しているため、通常のアップロードAPIのみ説明します。

BOX API アップロード 俯瞰

 

ファイルのアップロードもPOST形式ですが、上記「Request」に記載があるようにヘッダ情報のContent-Typeを「form-data」に指定する必要があります。
なお、Bodyのデータ形式も合わせて「form-data」とします。

必要なデータは、「ファイル名」「親フォルダID」「ファイルデータ」の3種類を指定します。
ただし「file」は「attributes」より前に記載するとエラーになるため、注意してください。

 項目 概要  値 (例)
 attributes  ファイルの名前、親フォルダIDを指定
※name, parentを指定
attributes: {
  name: "テスト.pdf",
  parent: "12345"
}
file  アップロードするファイルデータ
file=ファイルデータ
(バイナリまたは、Base64)

 

以上で、必要なAPIを3種類確認しました。

APIリファレンスページが日本語で記載されており記載されている情報もシンプルでわかりやすいため、リファレンスに慣れていない方の練習にもってこいのサービスだと思いました。
Boxを活用されている開発者の方はぜひこの機会にチャレンジしてください。

次回は、今回確認した3種類のAPI(+α)を用いてロボット開発のフローをご説明します。
管理用エクセルとどうやって組み合わせて行くのか、アクセストークンの有効期限をどう更新するのか等の課題がありますが、どうぞお楽しみに。

 今回も長い説明となりましたが、ありがとうございました。

Next : ロボットを実装(設計を含む)、開発環境でテスト (準備中)

 


自己紹介:
猫アレルギーですが、ラグドールを溺愛している猫エンジニア
2匹目探しと猫ハウス化に向けて自宅DIYに奔走中

経歴:
前職は、Web系の基幹システム開発やCS対応を担当
ミュートスでは、スマホアプリ開発やBizRobo開発/導入支援を担当
現在は、AI開発(見習い)としても活動(2021#2のE資格取得に向けて奮闘中)

 イラスト提供:フリーペンシル(https://iconbu.com/)

大阪本社
〒541-0056
大阪市中央区久太郎町2-2-7 山口興産堺筋ビル3階  アクセスマップ
TEL:06-6266-0440   FAX:06-6266-0450