Dropbox内のファイル一覧をGoogleスプレッドシートに取り込んで管理したいと考えたことはありませんか。共有フォルダの更新を監視したり、特定のファイルが追加されたら自動で通知を受け取りたい場合もあるでしょう。この記事では、Google Apps ScriptとDropbox APIを組み合わせて、ファイル一覧の取得と更新監視を実現する方法を詳しく解説します。具体的なコード例と設定手順を紹介しますので、初心者の方でも実践できます。
【要点】Dropbox APIとApps Scriptでファイル管理を自動化
- Dropbox API v2とアクセストークン: ファイル一覧取得にはAPIのエンドポイント「/files/list_folder」を使用します。アクセストークンはDropbox App Consoleで発行します。
- Apps ScriptのUrlFetchAppでAPI呼び出し: スプレッドシート上でスクリプトを実行し、JSONレスポンスを解析してシートに書き出します。
- 時間主導型トリガーで更新監視: 定期的にスクリプトを実行してファイルの追加・変更を検知し、メール通知やログ出力が可能です。
ADVERTISEMENT
目次
Dropbox API連携の仕組みと前提条件
Dropbox APIはRESTfulなインターフェースで提供されており、HTTPリクエストでファイル操作ができます。Google Apps ScriptにはUrlFetchAppクラスがあり、外部APIと通信できます。これらを組み合わせることで、Dropboxのファイル一覧を取得し、スプレッドシートに出力できます。
事前に必要なものは以下の3点です。
- DropboxアカウントとDropbox App(APIアプリ)の作成
- アクセストークン(短期または長期)の発行
- Googleスプレッドシート(Apps Scriptを実行する)
Dropboxファイル一覧を取得する手順
1. Dropbox Appを作成してアクセストークンを取得する
- Dropbox App Consoleにアクセス
ブラウザでDropbox App Consoleを開き、「Create app」をクリックします。 - アプリの種類を選択
「Scoped access」を選び、「Full Dropbox」または「App folder」を選択します。今回は「Full Dropbox」にします。 - アプリ名を入力
わかりやすい名前(例:SheetsFileManager)を入力し、「Create app」をクリックします。 - アクセストークンを生成
作成したアプリの「Permissions」タブで「files.metadata.read」と「files.content.read」のチェックを入れます。「Settings」タブの「OAuth 2.0」セクションで「Generate access token」ボタンをクリックし、表示されたトークンをメモします。このトークンは後ほどスクリプトで使用します。
2. GoogleスプレッドシートでApps Scriptを作成する
- スクリプトエディタを開く
Googleスプレッドシートを開き、「拡張機能」→「Apps Script」をクリックします。 - 関数を記述する
以下のコードを入力します。function getDropboxFiles() { var accessToken = 'YOUR_ACCESS_TOKEN'; var url = 'https://api.dropboxapi.com/2/files/list_folder'; var payload = { "path": "", "recursive": true, "include_media_info": false, "include_deleted": false, "include_has_explicit_shared_members": false }; var options = { 'method' : 'post', 'headers': { 'Authorization': 'Bearer ' + accessToken, 'Content-Type': 'application/json' }, 'payload' : JSON.stringify(payload) }; var response = UrlFetchApp.fetch(url, options); var result = JSON.parse(response.getContentText()); var entries = result.entries; var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); sheet.appendRow(['ファイル名', 'パス', '種類', 'サイズ', '更新日時']); entries.forEach(function(entry) { sheet.appendRow([ entry.name, entry.path_lower, entry['.tag'], entry.size || '', entry.server_modified || '' ]); }); }「YOUR_ACCESS_TOKEN」を先ほど取得したアクセストークンに置き換えます。
- 関数を実行して権限を承認
保存後、関数getDropboxFilesを選択して実行します。初回は承認ダイアログが表示されるので、内容を確認して許可します。
ファイル更新を監視する方法
前述のスクリプトを定期的に実行することで、ファイルの追加・変更を検知できます。更新監視の実装方法を2つ紹介します。
1. 時間主導型トリガーを設定する
- トリガーを追加
Apps Scriptエディタで時計アイコン(トリガー)をクリックし、「トリガーを追加」を選択します。 - 実行間隔を設定
「時間ベースのトリガー」を選び、1時間ごとなど好みの間隔を指定します。エラーが発生した場合の通知も設定できます。 - 変更を検知するロジック
前回取得時のファイルリストと比較するには、スクリプト内でスプレッドシートの別シートにスナップショットを保存します。差分を検出したらメールで通知することも可能です。
2. 変更通知をメールで受け取る
- MailAppクラスを使用
以下のコードを関数に追加します。MailApp.sendEmail('your@email.com', 'Dropbox更新検知', '新しいファイルが追加されました: ' + entry.name); - 差分チェック
前回のリストをpropertiesServiceや別シートに保存し、新しいリストと比較します。
ADVERTISEMENT
連携時の注意点とよくあるエラー
「Error 400: path_lookup/not_found」エラー
指定したパスが存在しない場合に発生します。パスの先頭にスラッシュを付けるか、空文字列(ルート)にすることで解決します。
アクセストークンの有効期限切れ
短期トークン(約4時間)を使用している場合は、定期的に再発行が必要です。長期トークン(有効期限なし)はセキュリティリスクがあるため、運用環境では適切に管理しましょう。
APIレート制限
Dropbox APIには1アプリあたりのリクエスト制限があります。大量のファイルがある場合は、ページネーション処理を実装して1回の取得件数を制限します。
他のストレージ連携との比較
| 項目 | Dropbox API | Google Drive API | OneDrive API |
|---|---|---|---|
| 認証方式 | OAuth 2.0(アクセストークン) | OAuth 2.0(スコープ指定) | OAuth 2.0(Microsoft Graph) |
| ファイル一覧取得 | /files/list_folder | files.list | /me/drive/root/children |
| 更新監視 | Webhook + ポーリング | 変更通知(Push) | Webhook + ポーリング |
| Apps Scriptの難易度 | 中(UrlFetchAppのみ) | 低(DriveAppサービスあり) | 中(UrlFetchApp + 認証複雑) |
| 無料枠の制限 | API呼び出し数制限あり | 1日あたりのリクエスト数制限あり | API呼び出し数制限あり |
まとめ
この記事では、Dropbox APIとGoogle Apps Scriptを用いてファイル一覧を取得し、更新を監視する方法を解説しました。アクセストークンの発行、スクリプトの記述、トリガー設定の手順を実践することで、Dropboxのファイル管理をスプレッドシート上で自動化できます。応用として、取得したファイル一覧をQUERY関数でフィルタリングしたり、IMPORTRANGEで別シートと連携するのも便利です。ぜひ実際の業務に取り入れてみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
