フリーランスや小規模チームで仕事をしていると、Dropboxを使ったファイル共有は欠かせませんよね。「クライアントから新しいデザイン案が届いた」「メンバーが報告書をアップロードした」など、日々の業務でファイルは絶えず更新されます。しかし、忙しい中で「いつの間にかファイルが追加されていて、確認が遅れてしまった…」なんて経験はありませんか? いちいちDropboxを開いて更新を確認するのは手間ですし、大事なファイルを見落とすリスクも伴います。この記事では、そんな悩みを解決する「Dropboxの特定フォルダにファイルが追加されたら、自動でGmailに通知を送る仕組み」の作り方を、専門知識ゼロからでも実践できるように、ステップ・バイ・ステップで徹底解説します。30分後には、あなたも面倒な確認作業から解放されているはずです!
今回作成する自動化の全体像
まずは、これから作る自動化の仕組みがどんな流れで動くのか、全体像を掴んでおきましょう。やることはシンプルです!
graph TD
A[Dropboxの特定フォルダにファイルが追加される] --> B{GASが定期的にチェック};
B --> C{新しいファイルはある?};
C -- YES --> D[ファイル名などの情報を取得];
D --> E[Gmailで通知メールを自動作成&送信];
E --> F[あなたのGmailに通知が届く!✨];
C -- NO --> G[何もせず次のチェックを待つ];
このように、Google Apps Script(GAS)というGoogleが提供する無料のプログラムに、定期的にDropboxを見張ってもらい、変化があったらGmailで知らせてもらう、という仕組みです。
ステップ0:事前準備
本格的な作業に入る前に、以下の4つのものを準備してください。ほとんどの方が既にお持ちのものだと思います。
- Googleアカウント: GmailやGoogle Apps Scriptを使うための必須アカウントです。
- Dropboxアカウント: 通知を受け取りたいファイルが保存されているアカウントです。
- Dropbox APIのアクセストークン: 「APIって何?」と不安に思わなくても大丈夫です!後ほどステップ1で誰でも簡単に取得できる手順を解説します。プログラムがDropboxと「会話」するための「合言葉」のようなものです。
- インターネットに接続できるパソコン: 設定作業を行います。
ステップ・バイ・ステップ構築ガイド
準備が整ったら、いよいよ構築作業に入ります。一つ一つの手順を丁寧に進めていきましょう。
Step1:Dropboxと連携するための「合言葉」を取得する
最初に、GASがDropboxの中を覗けるようにするための「合言葉(アクセストークン)」を取得します。
- まず、Dropbox App Consoleにアクセスし、お持ちのDropboxアカウントでログインします。
- 画面にある「Create app」という青いボタンをクリックします。
- 「Choose an API」では「Scoped access」を選択します。
- 「Choose the type of access you need」では「App folder」を選択します。これは、あなたのDropbox内にこのアプリ専用のフォルダを作成し、その中だけを操作できるようにする安全な設定です。
- 「Name your app」に、分かりやすい名前を入力します(例: `Gmail-Notification-App`)。入力後、利用規約にチェックを入れて「Create app」をクリックします。
- アプリの管理画面に移動します。上部にある「Permissions」タブをクリックします。
- 権限の一覧が表示されるので、「Files and Folders」セクションにある「files.metadata.read」のチェックボックスにチェックを入れます。これが「フォルダの中身を読み取る」権限です。チェックを入れたら、右下の「Submit」ボタンを押して変更を保存します。
- 次に、上部の「Settings」タブに戻ります。
- 少し下にスクロールすると、「Generated access token」というセクションがあります。ここの「Generate」ボタンをクリックしてください。
- すると、英数字の長い文字列(`sl.`から始まることが多いです)が表示されます。これが「合言葉」となるアクセストークンです。誰にも見られないように、テキストエディタなどにコピーして大切に保管しておいてください。
Step2:自動化プログラムの土台(GASプロジェクト)を作成する
次に、自動化のプログラムを書き込む場所を用意します。
- Google Apps Scriptのホーム画面にアクセスします。
- 左上にある「新しいプロジェクト」をクリックします。
- エディタ画面が開いたら、左上の「無題のプロジェクト」をクリックして、分かりやすい名前(例: `Dropboxファイル追加通知`)に変更し、「名前を変更」ボタンを押します。
これで、プログラムを書き込む準備ができました。
Step3:コピペでOK!自動化のコードを貼り付ける
いよいよメインのプログラム部分です。以下のコードをコピーして、GASエディタに表示されている `function myFunction() { … }` という部分を全て消してから貼り付けてください。
// この関数を実行するとDropboxをチェックします
function checkDropboxFiles() {
// --- ▼ここから設定項目▼ ---
// Step1で取得したDropboxのアクセストークンを貼り付け
const DROPBOX_ACCESS_TOKEN = 'ここにアクセストークンを貼り付け';
// 通知を受け取りたいGmailアドレス
const NOTIFY_EMAIL_ADDRESS = 'your-email@example.com';
// チェックしたいDropboxのフォルダパス( /Apps/アプリ名/監視したいフォルダ名 )
// 例: /Apps/Gmail-Notification-App/請求書
// アプリフォルダ直下を監視する場合は /Apps/アプリ名 のように指定します
const TARGET_FOLDER_PATH = '/Apps/Gmail-Notification-App';
// --- ▲ここまで設定項目▲ ---
// Dropbox APIを呼び出してファイルリストを取得
const url = 'https://api.dropboxapi.com/2/files/list_folder';
const headers = {
'Authorization': 'Bearer ' + DROPBOX_ACCESS_TOKEN,
'Content-Type': 'application/json'
};
const payload = {
'path': TARGET_FOLDER_PATH,
'recursive': false, // サブフォルダは含めない
'include_media_info': false,
'include_deleted': false,
'include_has_explicit_shared_members': false
};
const options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(payload)
};
try {
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
const files = result.entries;
// 現在のファイル名リストを作成
const currentFileNames = files.map(file => file.name);
// 前回のファイルリストをスクリプトプロパティから取得
const properties = PropertiesService.getScriptProperties();
const previousFilesJson = properties.getProperty('previousFiles');
const previousFileNames = previousFilesJson ? JSON.parse(previousFilesJson) : [];
// 新しく追加されたファイルを見つける
const newFiles = currentFileNames.filter(fileName => !previousFileNames.includes(fileName));
// 新しいファイルがあればメールで通知
if (newFiles.length > 0) {
const subject = `【Dropbox通知】新しいファイルが追加されました`;
let body = `Dropboxの「${TARGET_FOLDER_PATH}」フォルダに新しいファイルが追加されました。\n\n`;
body += '▼追加されたファイル一覧\n';
newFiles.forEach(fileName => {
body += `- ${fileName}\n`;
});
body += '\nご確認をお願いします。';
GmailApp.sendEmail(NOTIFY_EMAIL_ADDRESS, subject, body);
}
// 今回のファイルリストを次回のチェックのために保存
properties.setProperty('previousFiles', JSON.stringify(currentFileNames));
} catch (e) {
// エラーが発生した場合もメールで通知
const subject = `【エラー】Dropbox通知スクリプトでエラーが発生しました`;
const body = `エラー内容:\n${e.toString()}`;
GmailApp.sendEmail(NOTIFY_EMAIL_ADDRESS, subject, body);
}
}
貼り付けたら、コードの上部にある「設定項目」の3箇所を、ご自身の情報に書き換えてください。
- `DROPBOX_ACCESS_TOKEN`: Step1で取得した長い文字列を `’ ‘` の間に貼り付けます。
- `NOTIFY_EMAIL_ADDRESS`: 通知を受け取りたいご自身のメールアドレスを入力します。
- `TARGET_FOLDER_PATH`: 監視したいDropboxのフォルダを指定します。Step1で「App folder」を選んだ場合、Dropbox内に「アプリ」というフォルダが作られ、その中に `Gmail-Notification-App`(ご自身で付けたアプリ名)というフォルダが自動で生成されます。そのフォルダを監視対象とする場合は、`/Apps/Gmail-Notification-App` のように記述します。もしその中にさらに「資料」というフォルダを作って監視したい場合は `/Apps/Gmail-Notification-App/資料` となります。
書き換えたら、フロッピーディスクのアイコン(プロジェクトを保存)をクリックして保存します。
Step4:プログラムの実行許可とテスト
コードが書けたら、一度だけ手動で動かして、正しく動作するか確認し、Googleに実行を許可します。
- まず、テストのために、先ほど指定したDropboxのフォルダに、何か適当なファイルを1つアップロードしておきましょう。
- GASエディタの上部にある「実行」ボタンを押します。
- 初回は「承認が必要です」というウィンドウが表示されるので、「権限を確認」をクリックします。
- ご自身のGoogleアカウントを選択します。
- 「このアプリは Google で確認されていません」という警告画面が表示されることがありますが、心配ありません。「詳細」をクリックし、一番下の「(プロジェクト名)(安全ではないページ)に移動」をクリックします。
- 「このアプリがGoogleアカウントにリクエストしているアクセスの許可」という画面で、内容を確認し、一番下の「許可」ボタンをクリックします。
- これで実行許可が完了しました。実行ログにエラーが表示されず、「実行完了」と出れば成功です。
- 設定したGmailアドレスの受信トレイを確認してみてください。「【Dropbox通知】新しいファイルが追加されました」という件名のメールが届いていれば、テストは成功です!
Step5:自動で定期実行するように設定する
最後の仕上げです。このプログラムを、あなたが何もしなくても自動で定期的に動くように設定します。
- GASエディタの左側にあるメニューから、時計のアイコン「トリガー」をクリックします。
- 画面右下の「トリガーを追加」ボタンをクリックします。
- 以下の通りに設定します。
- 実行する関数を選択: `checkDropboxFiles`
- 実行するデプロイを選択: `Head`
- イベントのソースを選択: `時間主導型`
- 時間ベースのトリガーのタイプを選択: `分タイマー` または `時間ベースのタイマー` を選びます。(例: 頻繁にチェックしたいなら「分タイマー」)
- 時間の間隔を選択: `10分おき` や `1時間おき` など、お好みの頻度を選びます。あまり短すぎると制限に達する可能性があるので、10分〜1時間程度がおすすめです。
- 設定が終わったら「保存」ボタンをクリックします。
お疲れ様でした!これですべての設定は完了です。これからは、設定した頻度でGASが自動的にDropboxをチェックし、新しいファイルが追加されたらあなたのGmailに通知を送ってくれます。
まとめ:自動化で生まれた時間を、もっと創造的な仕事に
今回は、Google Apps Script(GAS)を使って「Dropboxのファイル追加をGmailに自動通知する」仕組みを構築しました。これで、わざわざDropboxを開いて更新を確認する手間が省け、重要なファイルの共有を見落とす心配もなくなります。チームで共有しているフォルダを監視すれば、情報共有のスピードも格段にアップするでしょう。
このように、GASを使えば、プログラミングの専門家でなくても、身の回りのちょっとした「面倒くさい」を解決できます。今回作成した仕組みを応用して、次は「特定の件名のメールが来たらSlackに通知する」といった自動化に挑戦してみるのも面白いかもしれません。自動化で生まれた貴重な時間を、ぜひあなたのビジネスを加速させる創造的な仕事に使ってください!
免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。
