[GAS]GoogleDriveにアップロードされたファイルを通知する

新規に追加されたファイルの一覧をSlackに通知するためにGoogle Apps Scriptで書いた。
Slackの通知処理は割愛するとしてScriptの内容をメモしておく。

書いたやつ

const DIR_ID = 'xxxxxxxxx';
const INTERVAL_MINUTE = 1;
const BASE_LINK = 'https://drive.google.com/drive/u/0/folders/';

var target_dir = DriveApp.getFolderById(DIR_ID);
var files = target_dir.getFiles();
var now = new Date();
var notify_files = [];
// フォルダのファイルデータを取得
while (files.hasNext()) {
  var file = files.next();
  var create_date = file.getDateCreated();
  // 1分以内に更新があったかを確認
  var time_diff = (now.getTime() - create_date.getTime()) / (60 * 1000);
  if (time_diff < INTERVAL_MINUTE) {
    tmp = {
      'file_name': file.getName()
    };
    notify_files.push(tmp);
  }
}
// Slack通知
if (notify_files.length > 0) {
  user_name = 'Drive通知テスト';
  post_text = '通知のテストです。\n';
  for (var i = 0; i < notify_files.length; i++) {
    post_text += '\n';
    post_text += '・' + notify_files[i]['file_name'];
  }
  post_text += '\n' + BASE_LINK + DIR_ID;

  sendSlack(TOKEN, channel, post_text, user_name, bot_icon, bot_emoji);  
}

という感じ。(sendSlack()の内容はまあ今度でいいかな。。。)
あとはプロジェクトのトリガーで1分間隔でスクリプトを実行するよう設定する。

DriveApp.getFolderById(DIR_ID) でオブジェクトを取得した後は公式のドキュメントを見ながら各オブジェクトの関数を使用して必要な値を取得する。

Class DriveApp

Class FileIterator

Class File

参考

Google App ScriptでGoogleドライブの更新情報を通知する

2 つの Date 間の差分を求める

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

11 + thirteen =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください