もう見逃さない!Dropboxのファイル追加をGmailに自動通知する仕組みを30分で構築する方法【GAS】

チームでDropboxを使っているけど、誰かがファイルを追加しても気づかずに作業が遅れてしまった…なんて経験はありませんか?クライアントからのファイル納品を「届いていますか?」と催促される前に把握したい、重要な契約書の更新を見落としたくない。そんなファイル共有にまつわる「あるある」な悩みを、今日は解決します。この記事を読めば、プログラミング経験がほとんどない方でも、コピペと簡単な設定だけで「Dropboxの特定フォルダにファイルが追加されたら、すぐにGmailに通知が届く」という夢のような仕組みを、わずか30分で構築できます。もう、何度もDropboxを開いて更新を確認する必要はありません。面倒な確認作業を自動化して、生まれた時間を、もっと創造的な仕事に使いましょう!

今回作成する自動化の全体像

これから作成する自動化の仕組みは、以下の流れで動作します。Google Apps Script(GAS)というGoogleが提供する無料のツールが、DropboxとGmailの間に入って、すべての処理を自動で実行してくれます。

graph TD
    A[Dropboxの特定フォルダに
ファイルが追加される] --> B{GASが定期的に
フォルダをチェック}; B --> C{新しいファイルはある?}; C -- Yes --> D[ファイル名などの情報を取得]; D --> E[Gmailで通知メールを送信]; C -- No --> F[処理を終了];

ステップ0:事前準備

さっそく始めたいところですが、まずは必要なものを揃えましょう。どれも無料で用意できるものばかりです。

  • Googleアカウント: Gmailや、今回の主役であるGoogle Apps Script(GAS)を利用するために必須です。
  • Dropboxアカウント: 通知を受け取りたいファイルが保存されているアカウントです。
  • Dropbox APIアクセストークン: GASがあなたの代わりにDropboxフォルダを安全に覗きに行くための「合言葉」のようなものです。これは次のステップで取得します。
  • インターネットに接続できるPC: ここまでの準備ができれば、あとはこのPCで設定作業を行うだけです!

ステップ・バイ・ステップ構築ガイド

準備が整ったら、いよいよ自動化の仕組みを構築していきます。一つ一つのステップを丁寧に進めていきましょう。

Step1:Dropboxの「合言葉」となるAPIアクセストークンを取得する

まずはGASがDropboxと通信するための「APIアクセストークン」という特別なキーを取得します。

  1. Dropbox App Consoleにアクセス: まず、Dropbox App Consoleにアクセスし、お持ちのDropboxアカウントでログインします。
  2. 新しいアプリの作成: 画面にある「Create app」ボタンをクリックします。
  3. APIとアクセスの種類の選択: 「Choose an API」では「Scoped access」、「Choose the type of access you need」では「App folder」を選択します。これにより、作成するアプリがアクセスできる範囲を専用フォルダだけに限定でき、セキュリティが高まります。
  4. アプリ名の設定: アプリに分かりやすい名前を付けます。例えば「GmailNotifierForGAS」などと入力し、「Create app」ボタンをクリックします。
  5. 権限(Permissions)の設定: 作成したアプリの管理画面が表示されたら、「Permissions」タブに移動します。「Files and Folders」セクションにある「files.list_folder.read」のチェックボックスにチェックを入れます。これが「フォルダの中身を読み取る」権限になります。設定したら、画面下部の「Submit」ボタンを押して変更を保存します。
  6. アクセストークンの生成: 最後に「Settings」タブに戻ります。「Generated access token」という項目にある「Generate」ボタンをクリックしてください。長い英数字の文字列が表示されます。これが「アクセストークン」です。この文字列は外部に漏れないよう、誰にも見せず、コピーしてメモ帳などに一時的に貼り付けておきましょう。

Step2:自動化の司令塔となるGASプロジェクトを作成する

次に、自動化のプログラムを書き込むための場所を用意します。

  1. GASプロジェクトの新規作成: Googleドライブを開き、左上の「+ 新規」ボタンをクリックし、「その他」から「Google Apps Script」を選択します。
  2. プロジェクト名の変更: 新しいエディタ画面が開いたら、左上の「無題のプロジェクト」をクリックし、分かりやすい名前(例: Dropbox ファイル追加通知)に変更して「名前を変更」ボタンを押します。

Step3:コピペでOK!通知用スクリプトを記述・設定する

いよいよ、自動化の心臓部となるプログラムを記述します。と言っても、以下のコードをそのままコピー&ペーストするだけなので安心してください。

  1. コードの貼り付け: GASエディタに最初から書かれている `function myFunction() { … }` という部分をすべて削除し、以下のコードを丸ごと貼り付けます。
// ▼▼▼ あなたの設定に合わせて書き換えてください ▼▼▼

// 1. Step1で取得したDropbox APIアクセストークン
const DROPBOX_ACCESS_TOKEN = 'ここにあなたのアクセストークンを貼り付け';

// 2. 通知を受け取りたいご自身のGmailアドレス
const NOTIFICATION_EMAIL = 'your.email@example.com';

// 3. チェック対象のDropboxフォルダのパス
// ※アプリ専用フォルダの直下をチェックする場合は空文字("")のままにしてください。
// 例: /Apps/アプリ名/請求書/ の中をチェックしたい場合 → "/請求書"
const DROPBOX_FOLDER_PATH = '';

// ▲▲▲ 設定はここまで ▲▲▲


// 前回チェックしたファイルリストを保存・取得するためのキー
const SCRIPT_PROPERTY_KEY = 'previousFileList';

/**
 * Dropboxの新しいファイルを確認してGmailで通知するメイン関数
 */
function checkNewFiles() {
  try {
    const currentFiles = getDropboxFileList();
    if (!currentFiles) {
      console.log('ファイルリストの取得に失敗しました。');
      return;
    }

    const properties = PropertiesService.getScriptProperties();
    const previousFileListJson = properties.getProperty(SCRIPT_PROPERTY_KEY);
    const previousFiles = previousFileListJson ? JSON.parse(previousFileListJson) : [];

    const currentFileNames = currentFiles.map(file => file.name);
    const previousFileNames = previousFiles.map(file => file.name);

    const newFiles = currentFiles.filter(file => !previousFileNames.includes(file.name));

    if (newFiles.length > 0) {
      sendNotificationEmail(newFiles);
      console.log(`${newFiles.length}件の新しいファイルが見つかりました。通知を送信しました。`);
    } else {
      console.log('新しいファイルは見つかりませんでした。');
    }

    properties.setProperty(SCRIPT_PROPERTY_KEY, JSON.stringify(currentFiles));

  } catch (e) {
    console.error(`エラーが発生しました: ${e.toString()}`);
    GmailApp.sendEmail(NOTIFICATION_EMAIL, '[Dropbox通知エラー]', `スクリプトの実行中にエラーが発生しました。\n\n${e.toString()}`);
  }
}

/**
 * Dropbox APIを呼び出してファイルリストを取得する関数
 * @return {Array|null} ファイル情報の配列、または失敗時にnull
 */
function getDropboxFileList() {
  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: DROPBOX_FOLDER_PATH,
      recursive: false,
      include_media_info: false,
      include_deleted: false,
    }),
    muteHttpExceptions: true,
  };

  const response = UrlFetchApp.fetch(apiUrl, options);
  const responseCode = response.getResponseCode();
  const responseBody = response.getContentText();

  if (responseCode === 200) {
    const json = JSON.parse(responseBody);
    return json.entries; 
  } else {
    console.error(`Dropbox APIエラー: ${responseCode} ${responseBody}`);
    return null;
  }
}

/**
 * 新しく追加されたファイル情報をGmailで送信する関数
 * @param {Array} newFiles 新しいファイル情報の配列
 */
function sendNotificationEmail(newFiles) {
  const subject = `[Dropbox通知] ${newFiles.length}件の新しいファイルが追加されました`;
  
  let body = 'Dropboxの監視対象フォルダに新しいファイルが追加されました。\n\n';
  body += '▼追加されたファイル一覧\n';
  
  newFiles.forEach(file => {
    const modifiedDate = new Date(file.client_modified);
    const jstDate = Utilities.formatDate(modifiedDate, 'JST', 'yyyy/MM/dd HH:mm:ss');
    body += `・ファイル名: ${file.name}\n`;
    body += `  追加日時: ${jstDate} (JST)\n\n`;
  });
  
  body += '--\nこのメールはGoogle Apps Scriptによって自動送信されています。';

  GmailApp.sendEmail(NOTIFICATION_EMAIL, subject, body);
}
  1. 設定情報の書き換え: 貼り付けたコードの冒頭にある▼▼▼▲▲▲で囲まれた3つの項目を、あなたの情報に書き換えます。
    • DROPBOX_ACCESS_TOKEN: Step1で取得した長い文字列を' 'の間に貼り付けます。
    • NOTIFICATION_EMAIL: 通知を受け取りたいあなたのメールアドレスを入力します。
    • DROPBOX_FOLDER_PATH: 監視したいフォルダを指定します。Step1で「App folder」を選んだので、あなたのDropboxには「アプリ」というフォルダができており、その中に先ほど付けたアプリ名のフォルダが作成されています。そのフォルダ直下を監視対象にする場合は、初期設定の''(空文字)のままでOKです。
  2. プロジェクトの保存: 編集が終わったら、フロッピーディスクの形をした「プロジェクトを保存」アイコンをクリックして、変更を保存します。

Step4:自動化を実行する「トリガー」を設定する

最後に、このプログラムを定期的に自動で実行するための「トリガー」を設定します。これにより、あなたが何もしなくてもGASが自動でDropboxをチェックしてくれるようになります。

  1. トリガー設定画面を開く: GASエディタの左側メニューから、時計の形をした「トリガー」アイコンをクリックします。
  2. トリガーを追加: 右下に表示される「トリガーを追加」ボタンをクリックします。
  3. トリガーの設定: 以下の通りに設定項目を選択・入力していきます。
    • 実行する関数を選択: checkNewFiles
    • 実行するデプロイを選択: Head
    • イベントのソースを選択: 時間主導型
    • 時間ベースのトリガーのタイプを選択: 分ベースのタイマー
    • 時間の間隔を選択(分): 10分おき (お好みに応じて「1時間おき」などに変更可能です)
  4. 保存と承認: 設定が終わったら「保存」ボタンをクリックします。すると、Googleアカウントの承認を求めるポップアップが表示されます。ご自身のアカウントを選択し、「詳細」→「(プロジェクト名)(安全でないページ)に移動」→「許可」の順にクリックして、スクリプトがGmailや外部サービスに接続することを許可してください。(「安全でない」と表示されますが、ご自身が作成したスクリプトなので問題ありません)

以上で、すべての設定は完了です!お疲れ様でした。これからは、指定したDropboxフォルダに新しいファイルが追加されると、設定した間隔で自動的にチェックされ、Gmailに通知が届くようになります。

まとめ:自動化で生まれた時間を、もっと創造的な仕事に

今回は、Google Apps Scriptを使って「Dropboxへのファイル追加をGmailに通知する」仕組みを構築しました。この自動化一つで、ファイルの見落としリスクがゼロになり、何度もフォルダを確認しにいく手間から解放されます。空いた時間は、資料作成やお客様への連絡など、あなたにしかできない、より創造的な仕事に集中するために使いましょう。一度仕組みを作ってしまえば、あとは24時間365日、文句も言わずに働き続けてくれる頼もしいパートナーになります。今回の自動化に慣れたら、次は「受信したメールの内容をスプレッドシートに自動転記する」など、他の業務ハックにもぜひ挑戦してみてください!


免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。

タイトルとURLをコピーしました