新規に追加されたファイルの一覧を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) でオブジェクトを取得した後は公式のドキュメントを見ながら各オブジェクトの関数を使用して必要な値を取得する。