Boxのストレージに保存されたファイルの一覧をGoogleスプレッドシートで管理したいと考えたことはありませんか。Box APIを利用すれば、スプレッドシートから直接ファイルのリストを取得できます。この記事では、Box APIの接続設定から、ファイル一覧をシートに出力するまでの手順を詳しく解説します。
【要点】Box APIでファイル一覧をスプレッドシートに取得する3つのステップ
- Boxでアプリを作成して認証情報を取得: Box開発者コンソールでアプリを登録し、クライアントIDとシークレットを発行します。
- Apps ScriptでOAuth2認証を実装: スプレッドシートのスクリプトエディタでOAuth2ライブラリを使い、アクセストークンを取得します。
- APIリクエストでフォルダ内容を取得してシートに書き込み: Box APIのエンドポイントを呼び出し、ファイル名や更新日時などをシートに出力します。
ADVERTISEMENT
目次
Box APIでファイル一覧を取得する仕組みと準備
Box APIはBoxのクラウドストレージ上のデータにアクセスするためのRESTful APIです。ファイルやフォルダの一覧取得、作成、更新、削除などが行えます。スプレッドシートから利用するには、Boxの開発者アカウントでアプリケーションを作成し、認証情報を取得する必要があります。また、Google Apps Scriptを使ってAPIを呼び出し、結果をシートに反映します。事前にBoxのアカウント(無料でも可)と、API利用のための開発者コンソールへのログインが可能であることを確認してください。
Box APIに接続してファイル一覧を取得する手順
- Boxでアプリを作成して認証情報を取得します。
Box開発者コンソール(https://developer.box.com)にアクセスし、「Create New App」をクリックします。アプリ名を入力し、認証方式として「OAuth 2.0 with JWT」を選択します(サーバー認証向け)。作成後、クライアントIDとクライアントシークレットが表示されます。これらの値を控えておきます。 - GoogleスプレッドシートでApps Scriptを開きます。
ファイル一覧を出力するスプレッドシートを開き、メニューの「拡張機能」→「Apps Script」を選択します。スクリプトエディタが開きます。 - OAuth2ライブラリを追加します。
スクリプトエディタの左側の「ライブラリ」横の「+」をクリックし、ライブラリID「1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF」を追加します。バージョンは最新(例:41)を選択します。これによりOAuth2認証が簡略化できます。 - 認証用のスクリプトを記述します。
コード.gsに以下の関数を追加します。function getBoxService() { return OAuth2.createService(‘box’) .setAuthorizationBaseUrl(‘https://account.box.com/api/oauth2/authorize’) .setTokenUrl(‘https://api.box.com/oauth2/token’) .setClientId(‘YOUR_CLIENT_ID’) .setClientSecret(‘YOUR_CLIENT_SECRET’) .setCallbackFunction(‘authCallback’) .setPropertyStore(PropertiesService.getUserProperties()) .setScope(‘https://api.box.com/scope’) ; } ‘YOUR_CLIENT_ID’と’YOUR_CLIENT_SECRET’は実際の値に置き換えてください。 - アクセストークンを取得します。
別の関数で認証URLを生成します。function showAuthUrl() { var service = getBoxService(); var authUrl = service.getAuthorizationUrl(); Logger.log(authUrl); } この関数を実行し、表示されたURLにブラウザでアクセスして許可します。リダイレクト後にコードが取得され、自動的にトークンが保存されます。 - APIを呼び出してフォルダのファイル一覧を取得します。
function getFileList() { var service = getBoxService(); if (service.hasAccess()) { var response = UrlFetchApp.fetch(‘https://api.box.com/2.0/folders/0/items’, { headers: { Authorization: ‘Bearer ‘ + service.getAccessToken() } }); var data = JSON.parse(response.getContentText()); return data.entries; } else { Logger.log(‘アクセストークンがありません。’); } } フォルダID「0」はルートフォルダを指します。必要に応じて変更してください。 - シートにファイル一覧を書き込みます。
取得したデータをシートに出力する関数を作成します。function writeToSheet() { var files = getFileList(); var sheet = SpreadsheetApp.getActiveSheet(); sheet.clear(); sheet.appendRow([‘ファイル名’, ‘タイプ’, ‘更新日時’]); files.forEach(function(item) { sheet.appendRow([item.name, item.type, item.modified_at]); }); } この関数を実行すると、アクティブなシートにファイル一覧が出力されます。
接続時の注意点とトラブル対処法
アクセストークンの有効期限切れ
Box APIのアクセストークンは通常2時間で失効します。そのため、長時間の処理や定期的な更新が必要な場合は、リフレッシュトークンを使って自動的にトークンを更新する仕組みを組み込んでください。OAuth2ライブラリでは、getAccessToken()メソッドが自動的にリフレッシュを試みます。
APIのレート制限に達する
Box APIには1分あたりのリクエスト数に制限があります(アプリの種類による)。大量のファイルを取得する場合は、ページネーション(1回のリクエストで100件など区切って取得)を利用してください。limitとoffsetパラメータを追加することで実現できます。
フォルダIDの指定ミス
フォルダIDを間違えると存在しないフォルダのエラー(404)が返ります。正しいIDはBoxのWeb UIでフォルダを開いたときのURLから確認できます。また、特定のフォルダを指定せずにルートフォルダ(ID:0)を使うと、ルート直下のアイテムのみ取得されます。
ADVERTISEMENT
Box API以外の方法との比較
| 方法 | 特徴 | 自動化のしやすさ |
|---|---|---|
| Box API + Apps Script | プログラミングが必要だが、柔軟性が高い | 高い(トリガーで定期実行可能) |
| BoxのCSVエクスポート機能 | 手動でCSVをダウンロードしてスプレッドシートに取り込む | 低い(毎回手動操作) |
| Zapierなどの連携ツール | ノーコードで連携可能だが有料プランが必要 | 中程度(設定は簡単だがコストがかかる) |
まとめ
Box APIとGoogle Apps Scriptを組み合わせることで、スプレッドシート上でBox内のファイル一覧を自動取得できるようになります。この手順を応用すれば、ファイルのアップロード日時によるフィルタリングや、特定の拡張子だけをリストアップすることも可能です。まずはサンプルコードをベースに、自分のBoxフォルダに合わせてカスタマイズしてみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
