チームメンバーやクライアントとのファイル共有にDropboxを使っているフリーランスや経営者の方、こんな経験はありませんか?「〇〇さん、先ほどファイルをアップロードしておきました!」というチャット連絡を受けて、わざわざDropboxを開きに行く。あるいは、連絡がなくファイルが追加されたことに気づかず、作業が遅れてしまった…。こうした細かな確認作業や連携ミスは、日々の業務の小さなストレスになりますよね。この記事では、そんな悩みを解決する「Dropboxの特定フォルダにファイルが追加されたら、Gmailに自動で通知する仕組み」を、プログラミング初心者でも30分で構築する方法をステップ・バイ・ステップで解説します。Google Apps Script(GAS)という無料のツールを使うので、追加費用は一切かかりません。この記事を読み終える頃には、面倒な確認作業から解放され、ファイルの見落としもなくなる、快適な業務フローが手に入りますよ!
今回作成する自動化の全体像
これから作成する仕組みの流れは、とてもシンプルです。GASが定期的にDropboxのフォルダを見に行き、新しいファイルを見つけたら、あなたのGmail宛に「新しいファイルが追加されましたよ」とお知らせメールを送ってくれます。
graph TD
A[定期的に自動実行
(トリガー)] --> B{GASスクリプト起動};
B --> C[Dropboxの特定フォルダを
API経由でチェック];
C --> D{新しいファイルはある?};
D -- Yes --> E[追加されたファイル情報を取得];
E --> F[Gmailで自分宛に通知メールを送信];
F --> G[処理終了];
D -- No --> G;
ステップ0:事前準備
さっそく作り始めたいところですが、まずは必要なツールを揃えましょう。すべて無料で準備できます。
- Googleアカウント: GmailやGoogle Apps Scriptを利用するために必須です。すでにお持ちのものを利用できます。
- Dropboxアカウント: ファイルを保存し、監視の対象となるアカウントです。こちらも普段お使いのものでOKです。
- Dropbox Developer App: 少し専門的に聞こえますが、これは私たちのGASがDropboxと「会話」するための「許可証」のようなものです。これから作成手順を丁寧に解説するのでご安心ください。
ステップ・バイ・ステップ構築ガイド
準備が整ったら、いよいよ構築スタートです!一つ一つの手順を丁寧に進めていきましょう。
Step1:Dropboxアプリの作成とアクセストークンの取得
まず、GASがDropboxにアクセスするための「鍵」となるアクセストークンを取得します。これはDropboxの公式サイトで簡単な設定をするだけです。
- Dropbox Developer Console(https://www.dropbox.com/developers/apps)にアクセスし、お持ちのDropboxアカウントでログインします。
- 画面にある「Create app」という青いボタンをクリックします。
- 「Choose an API」では「Scoped access」を選択します。
- 「Choose the type of access you need」では「App folder」を選びましょう。これは、このアプリ専用のフォルダを作成し、その中だけを操作できるようにする安全な設定です。
- 「Name your app」で、アプリに分かりやすい名前を付けます(例: `GAS_File_Notifier`)。名前を入力したら、チェックボックスにチェックを入れ、「Create app」をクリックします。
- アプリの管理画面が表示されたら、「Permissions」タブに移動します。
- 「Files and Folders」という項目の中にある `files.metadata.read` のチェックボックスにチェックを入れて「Submit」ボタンを押します。これは「ファイルの情報を読み取ることを許可しますよ」という設定です。
- 次に「Settings」タブに戻ります。「Generated access token」というセクションまでスクロールし、「Generate」ボタンをクリックしてください。
- 英数字の長い文字列が表示されます。これが「アクセストークン」です!このトークンは、誰にも知られないように大切に保管してください。メモ帳などにコピーしておきましょう。
Step2:Google Apps Scriptプロジェクトの作成
次に、自動化のプログラムを書き込む場所を用意します。
- ブラウザで script.google.com/create にアクセスします。
- 無題のプロジェクトが開きます。左上の「無題のプロジェクト」をクリックし、分かりやすい名前(例: `Dropbox to Gmail Notifier`)に変更しておきましょう。
Step3:コードを書いてDropboxとGmailを連携させる
いよいよメインの工程です。以下のコードをコピーして、GASのエディタ画面に貼り付けてください。元々書かれている `function myFunction() { … }` は全て消してから貼り付けましょう。
// -------- 設定項目 --------
// Step1で取得したDropboxのアクセストークンを '' の間に貼り付けてください
const DROPBOX_ACCESS_TOKEN = 'YOUR_DROPBOX_ACCESS_TOKEN';
// 監視したいDropboxフォルダのパスを指定します。
// App Folderで作った場合、ルートフォルダ(一番上の階層)を監視するなら空文字列 '' のままでOKです。
// もしアプリ名のフォルダ内に「請求書」フォルダを作って監視したい場合は '/請求書' と入力します。
const DROPBOX_FOLDER_PATH = '';
// 通知を受け取るご自身のメールアドレスを '' の間に記入してください
const NOTIFICATION_EMAIL = 'your-email@example.com';
// 何分前までの更新をチェック対象とするか(後のStep4で設定する実行間隔と合わせるのがおすすめです)
const CHECK_INTERVAL_MINUTES = 10;
// -------- 設定はここまで --------
/**
* メインの実行関数
*/
function checkNewFilesAndNotify() {
try {
const files = getDropboxFiles(DROPBOX_FOLDER_PATH);
if (!files || files.length === 0) {
console.log('ファイルが見つかりませんでした。');
return;
}
const newFiles = filterNewFiles(files, CHECK_INTERVAL_MINUTES);
if (newFiles.length > 0) {
sendNotificationEmail(newFiles);
console.log(`${newFiles.length}件の新規ファイルを通知しました。`);
} else {
console.log('新規ファイルはありませんでした。');
}
} catch (e) {
console.error('エラーが発生しました: ' + e.toString());
// エラー発生時にも通知を送る場合は、以下の行の先頭の「//」を消してください
// GmailApp.sendEmail(NOTIFICATION_EMAIL, '【エラー】Dropbox監視スクリプト', e.toString());
}
}
/**
* Dropbox APIを呼び出してファイルリストを取得する関数
*/
function getDropboxFiles(folderPath) {
const apiUrl = 'https://api.dropboxapi.com/2/files/list_folder';
const options = {
'method': 'post',
'contentType': 'application/json',
'headers': {
'Authorization': 'Bearer ' + DROPBOX_ACCESS_TOKEN
},
'payload': JSON.stringify({
'path': folderPath,
'recursive': false,
'limit': 50
}),
'muteHttpExceptions': true
};
const response = UrlFetchApp.fetch(apiUrl, options);
const responseCode = response.getResponseCode();
const responseBody = response.getContentText();
if (responseCode === 200) {
const result = JSON.parse(responseBody);
return result.entries;
} else {
console.error(`Dropbox APIエラー: Status ${responseCode}, Body: ${responseBody}`);
return null;
}
}
/**
* ファイルリストから指定時間内に更新されたものだけをフィルタリングする関数
*/
function filterNewFiles(files, minutes) {
const targetTime = new Date();
targetTime.setMinutes(targetTime.getMinutes() - minutes);
return files.filter(file => {
if (file['.tag'] === 'file') {
const modifiedTime = new Date(file.server_modified);
return modifiedTime > targetTime;
}
return false;
});
}
/**
* 新しいファイル情報をGmailで送信する関数
*/
function sendNotificationEmail(newFiles) {
const subject = `【自動通知】Dropboxに${newFiles.length}件の新規ファイルが追加されました`;
let body = 'こんにちは!\n\n';
body += `Dropboxの監視フォルダに、新しいファイルが追加されましたのでお知らせします。\n\n`;
body += '▼ 追加されたファイル一覧\n';
newFiles.forEach(file => {
body += `・ ${file.name} (更新日時: ${new Date(file.server_modified).toLocaleString('ja-JP')})\n`;
});
body += '\nご確認のほど、よろしくお願いいたします。\n\n';
body += '※このメールはGoogle Apps Scriptにより自動送信されています。';
GmailApp.sendEmail(NOTIFICATION_EMAIL, subject, body);
}
貼り付けたら、コード上部の「設定項目」をあなた自身の情報に書き換えてください。
- `DROPBOX_ACCESS_TOKEN` の `’YOUR_DROPBOX_ACCESS_TOKEN’` の部分を、Step1で取得したあなたのアクセストークンに置き換えます。
- `NOTIFICATION_EMAIL` の `’your-email@example.com’` の部分を、通知を受け取りたいあなたのメールアドレスに置き換えます。
- 書き換えたら、フロッピーディスクのアイコンの「プロジェクトを保存」をクリックして保存します。
Step4:スクリプトを自動で動かすトリガーを設定する
最後に、このプログラムを定期的に自動実行するための「トリガー」を設定します。これで、あなたが何もしなくても自動でDropboxをチェックしてくれるようになります。
- GASエディタの左側メニューから、時計の形をした「トリガー」アイコンをクリックします。
- 画面右下の「トリガーを追加」ボタンをクリックします。
- トリガーの設定画面が表示されるので、以下のように設定してください。
- 実行する関数を選択: `checkNewFilesAndNotify`
- 実行するデプロイを選択: `Head`
- イベントのソースを選択: `時間主導型`
- 時間ベースのトリガーのタイプを選択: `分ベースのタイマー`
- 時間の間隔を選択(分): `10分おき` または `30分おき` を選択します。(ここで選んだ時間と、Step3のコード内の`CHECK_INTERVAL_MINUTES`の数値を合わせるのがおすすめです)
- 設定が終わったら「保存」ボタンをクリックします。
- 「承認が必要です」という画面が表示されたら、「詳細」→「(プロジェクト名)(安全でないページ)に移動」をクリックし、次の画面で「許可」をクリックしてください。これは、あなたの代わりにGmailを送信したりすることをGoogleに許可する、最初の1回だけ必要な操作です。
これで全ての作業は完了です!お疲れ様でした!これからは、指定した時間間隔でスクリプトが自動実行され、Dropboxのアプリフォルダに新しいファイルが追加されると、あなたのGmailに通知が届くようになります。
まとめ:自動化で生まれた時間を、もっと創造的な仕事に
今回は、DropboxとGmailをGASで連携させることで、ファイルの追加を自動で通知する仕組みを構築しました。この小さな自動化一つで、「ファイル、確認しましたか?」といったコミュニケーションの手間が省け、重要なファイルの確認漏れも防ぐことができます。こうして生まれたわずかな時間や心の余裕を、もっとクリエイティブな仕事や、事業を成長させるための戦略を考える時間に使っていきましょう。今回の仕組みに慣れてきたら、次は「通知メールにファイルへの共有リンクを自動で記載する」といったカスタマイズに挑戦してみるのも面白いですよ。ぜひ、あなたのビジネスにITを楽しく活用してみてください!
免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。
