【コピペOK】Dropboxの新着ファイルをGmailで自動通知!GASで簡単ファイル管理術

業務改善

毎日のファイルチェック、Dropboxを開いて確認していませんか?ファイルが増えるたびにDropboxを開くのは面倒ですよね。特に、複数人で共有フォルダを使っている場合、誰がいつどんなファイルをアップロードしたのかをリアルタイムで把握するのは至難の業です。でも、もう大丈夫!このチュートリアルでは、Google Apps Script (GAS) を使って、Dropboxに新しいファイルが追加された瞬間にGmailで自動通知を受け取る方法を、ステップ・バイ・ステップで解説します。プログラミングの知識がなくても、コピペで簡単に実装できるので、ぜひ挑戦してみてください!

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

graph TD
    A[Dropboxにファイルが追加される] --> B{GASがファイル追加を検知};
    B -- ファイル名とフォルダ名を取得 --> C[Gmailで通知メールを送信];

ステップ0:事前準備

  • Googleアカウント(GASを実行するために必要です)
  • Dropboxアカウント(監視対象フォルダへのアクセス権限が必要です)
  • Dropbox APIキーとシークレットキー
  • Google Apps Script の基本的な知識(なくても、この記事で解説する手順通りに進めれば大丈夫です!)

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

Step1:Dropbox APIキーとシークレットキーの取得

  1. Dropbox開発者コンソール (https://www.dropbox.com/developers) にアクセスし、[Create app] をクリックします。
  2. 「Scooped access」を選択し、[App folder] を選択します。
  3. アプリ名を入力し、[Create app] をクリックします。
  4. 「Permissions」タブに移動し、「files.list_folder」と「files.content.read」にチェックを入れ、「Submit」をクリックします。
  5. 「Settings」タブの「App key」と「App secret」をメモします。これらはスクリプトで利用します。

Step2:Google Apps Script のプロジェクト作成

  1. Google スプレッドシートを開き、[ツール] > [スクリプトエディタ] を選択します。
  2. 新しいプロジェクトが作成されます。

Step3:スクリプトの記述

  1. 下記のコードをコピー&ペーストします。
  2. YOUR_APP_KEYYOUR_APP_SECRET には、Step1で取得したキーをそれぞれ設定してください。
  3. YOUR_DROPBOX_FOLDER_PATH には、監視対象のDropboxフォルダのパスを設定してください。パスはDropboxのウェブインターフェースで確認できます。(例: “/フォルダ名”)
  4. YOUR_EMAIL_ADDRESS には、通知を受け取るGmailアドレスを設定します。
  5. YOUR_REDIRECT_URIには、Dropboxアプリの設定画面にある「OAuth 2」の「Redirect URIs」に記載されているURIを貼り付けます。もし設定されていない場合は、`https://script.google.com/macros/d/${ScriptApp.getScriptId()}/usercallback`をDropboxアプリの「OAuth 2」の「Redirect URIs」に追加し、その値を貼り付けます。

function doGet(e) {
  return ContentService.createTextOutput("Hello World!");
}

function myFunction() {
  // Dropbox API 認証
  const dropbox = Dropbox.authorize({
    clientId: 'YOUR_APP_KEY',
    clientSecret: 'YOUR_APP_SECRET',
    redirectUri: 'YOUR_REDIRECT_URI',
  });

  // Dropbox フォルダの監視
  const folderPath = 'YOUR_DROPBOX_FOLDER_PATH';
  const changes = dropbox.filesListFolder({path: folderPath});

  // 新規ファイルの検出とメール送信
  if (changes.entries.length > 0){
    for (let i=0; i < changes.entries.length; i++){
        const file = changes.entries[i];
        if (file.isFile){ //ファイルのみ処理
            const subject = `新しいファイルが追加されました!`;
            const body = `ファイル名: ${file.name}\nフォルダパス: ${folderPath}`;
            MailApp.sendEmail({
              to: 'YOUR_EMAIL_ADDRESS',
              subject: subject,
              body: body,
            });
        }
    }
  }
}

// 毎分実行するトリガーを作成する関数
function createTrigger() {
  if (!ScriptApp.getProjectTriggers().find(t => t.getHandlerFunction() == 'myFunction')) {
    ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyMinutes(1) // 1分おきに実行
      .create();
  }
}

// プロジェクト実行時にトリガーを作成
function installTrigger() {
    createTrigger();
}

// 初期化時にトリガーを作成
installTrigger();

Step4: トリガーの設定

  1. スクリプトエディタのメニューから [編集] > [現在のプロジェクトのトリガー] を選択します。
  2. [トリガーを追加] をクリックします。
  3. 関数を選択 から `myFunction` を選択します。
  4. イベントのソースを選択 から `時間主導型` を選択し、 `分タイマー` -> `1分ごと` に設定します。
  5. [保存] をクリックします。承認を求められるので、指示に従って承認します。

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

これで、Dropboxに新しいファイルが追加されるたびに、自動的にGmailで通知を受け取ることができるようになりました!面倒なファイルチェックの手間から解放され、より重要な仕事に集中できるようになります。次は、他のタスクの自動化にも挑戦してみませんか?例えば、Gmailで特定のラベルが付いたメールを自動的にスプレッドシートに記録する、といったこともGASで実現できます。可能性は無限大です!


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

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