Box連携 〜ロボット化に必要なAPIを検討、仕様確認〜
こんにちは。
自称)BizRobo!エンジニアのもりりんです。
夏もそろそろ終わりで、秋に突入ですね。
今年もあと4ヶ月です。(え?まだ早い?)
......
....
..
では気を取り直して、BizRobo!からBoxにファイルをアップロードしよう 〜概要編〜で紹介した第2弾、ロボット化に必要なAPIを探していきましょー。
前回の記事では、BoxサービスのWebAPIを利用するために必要な作業をご説明しました。
必要な情報(=アクセストークン)を取得後に、BoxAPIのPostmanを利用した使い方を簡単に紹介していますが、BoxAPIには200を超えるAPIが存在するためどれを選んでいいか分からないかと思います。
今回は、目的のロボットを開発するためにどんなAPIが必要なのかを検討した後に、BoxのAPIリファレンスから探していきます。
と、その前に注意事項です。
BoxAPIの開発者登録をされていない方は、1つ前の記事をお確かめの上、必要な準備を整えてください。
Box連携 〜BoxAPIのアカウント登録、事前準備編〜
今回のチャプターはコチラです。
- ロボットの作業フローを整理する
- 目的に合いそうなAPIをリファレンスから探す
ではでは、進めていきましょー。
1.ロボットの作業フローを整理する
まずは、どんなロボットの実行フローにするのか整理しましょう。
概要編で提示した想定する簡易フローはコチラです。
BoxAPIを利用する箇所は、このフローで言うと④になります。
では、この④の手順をもう少し細分化すると以下のように分解することができます。
- アップロードしたいフォルダの有無をチェックする
- フォルダがない場合、必要なフォルダを作成する(※1つ前のフォルダもない可能性は考慮)
- ファイルをアップロードする(※50MBまでを想定)
上記のように軽く細分化するだけで、必要な機能を3つに絞り込むことができました。
次はこれらの要望に沿うAPIがあるかチェックしていきましょう。
2.目的に合いそうなAPIをリファレンスから探す
API一覧が載っているAPIリファレンスページを表示しましょう。
日本語ページなので、比較的わかりやすいと思います。
フォルダを検索するAPI
まずは、この中からフォルダを検索する機能を探すと「Folders」がすぐ見つかるので、「フォルダ情報を取得」をチェックしていきましょう。
ざっと見ると、利用時のURL、パラメータ(検索条件)、レスポンス等のサンプル情報を確認できます。

ここでフォルダ指定の方法をよく確認すると、フォルダ名ではなく、フォルダIDが必須となっています。
そうなると、アップロード先のフォルダIDを知らないと操作できないことになります。
毎回フォルダIDを事前に確認しなければいけないなんて面倒ですよね。
では、他に方法がないか確認してみると、ページの(結構)下に「検索」の項目を見つけることができます。
その中の「コンテンツを検索」に記載されているAPIを利用することで、ファイルやフォルダ名を文字列で指定して検索することが可能です。
試しにPostmanで検索APIを実行してみましょう。
今回は検索条件に「query」「fields」「type」の3種類を指定します。
項目 | 概要 | 値 (例) |
query | 検索条件(シングルかダブルクォーテーションを付加します) | "個人" |
fields | 1項目の表示情報 | id,type,name→初期値 parent→親階層の情報 |
type | 検索対象をファイルかフォルダに限定 | file or folder |
フォルダ検索でフォルダIDを利用していることを考慮すると、レスポンスから「フォルダ名、フォルダID」を取得できるため、この作業以降の操作は問題ないと判断できます。
フォルダを作成するAPI
続いて、フォルダを作成するAPIは、先程の「Folders」にあるので、簡単に確認します。
リクエスト時のメソッドが「POST」となるため、フォルダ名はBodyに埋め込んで送信する必要があるため注意してください。
必須パラメータは、「フォルダ名」「親フォルダID」の2つとなっています。
フォルダ名には、利用できない文字があるため、対象のAPIページを確認してください。
ファイルをアップロードするAPI
最後に、ファイルをアップロードするためのAPIを確認します。
ファイルのアップロードの注意点は、ファイル容量が50MBを超えているかどうかです。
50MB以下の場合はアップロードAPIを1回実行するだけで問題ありませんが、50MBより大きい場合は分割アップロードAPIを実行する必要があるため工程が少し複雑になります。
今回は50MB以下のファイルを想定しているため、通常のアップロード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/)
<RPAの導入につきまして>
本Blogは、お役に立ちましたでしょうか?
RPAは、一般的な業務システムとは異なり、PoCを実施し、導入・運用開始で終わりでははありません。
導入時点からようやくスタートです。
業務効率化、人員最適化等の目標に応じた計画策定や人員配置、自動化ロボットの開発・運用といったPDCAサイクルが必要です。
弊社では、貴社の課題に適した自動化プランのご提案や開発者育成研修も実施し、貴社と並走したサポートをご提供いたします。
お気軽にお問い合わせください。
BizRobo!や弊社サポートについて詳しくはこちら >>> サービス紹介 - BizRobo! (自動化ツール)