【GAS】Google Apps Script 活用事例 Googleドキュメントで、よく使うテンプレートを表示させるスクリプト
日付と曜日を毎回タイプするのって、結構面倒くさい。
実は転職先では、正社員ではないため、Slackのアクセス制限があり、加えてSlack APIも前職と異なり、自由に使う事が出来ません。もちろん、Slash Commandsも使えないので、Googleドキュメントで、テンプレート集を作っています。
担当面接官の方に、応募があったので、職務経歴書などの確認をお願いします的な内容をSlackでお伝えする機会が1日に何度かあり、テンプレートを作成しようと考えました。(※コピペだと日付を消して、タイプする手間が発生する)
function showMeDraft() {
const document = DocumentApp.getActiveDocument();
const body = document.getBody();
const ui = DocumentApp.getUi();
const date = new Date();
const day = dayOfTheWeek(date.getDay());//曜日を数字で取得
const now = date.getHours();//現在時刻を取得
const stringDate = (date, number, format) => {
date.setDate(date.getDate() + number);
return Utilities.formatDate(date, 'JST', format);
}
const greet = greeting(now);
const today = stringDate(date, 0, 'yyyy/MM/dd') + '(' + day + ')';
const html = HtmlService
.createHtmlOutput(
`<p>${greet}</p>
<p>新着応募がありました。本日中 ${today}に、下記リンクの応募書類をご確認頂くことは可能でしょうか?</p>
<p>お忙しいところ恐縮ですが、よろしくお願い致します!</p>
<br>
<p>HRMOSリンク</p>`
)
.setWidth(450)
.setHeight(300);
ui.showModelessDialog(html, '書類選考の依頼文');
}
//現在時刻を取得して、挨拶を変更する。朝だったら、おはようございます。
//夜だったら、お疲れ様です。
function greeting(now) {
if(now < 12 ){
return 'おはようございます。'
}else{
return 'お疲れ様です。'
}
}
//date.getDay()で出力した数字を渡して、曜日を返す
function dayOfTheWeek(day) {
let string;
switch(day){
case 0: string = '日';
break;
case 1: string = '月';
break;
case 2: string = '火';
break;
case 3: string = '水';
break;
case 4: string = '木';
break;
case 5: string = '金';
break;
case 6: string = '土';
break;
}
return string
}
Slackで、同じ機能を実現する場合
自分のワークスペースで似た機能を作りました。やっぱ、Slackで作る方が便利かつ簡単ね.....。上記はpタグが面倒ですね。
function doPost(e) {
const verificationToken = e.parameter.token;
if (verificationToken !== '********************') { // AppのVerification Tokenを入れる
throw new Error('Invalid token');
}
console.log(e);
const today = (date, format) => {
return Utilities.formatDate(date, 'JST', format);
};
const date = new Date();
const day = date.getDay();
const stringDay = dayOfTheWeek(day);
const now = date.getHours();//現在時刻
const greet = greeting(now);
console.log(`今日は、${stringDay}曜日`);
console.log(greet);
//2020/08/20のように日付を返す
const stringDate = today(date, 'yyyy/MM/dd');
const result = `${stringDate}(${stringDay})`;
console.log(result);
const draft = `${greet}\n新着応募がありました、本日中に ${result}ご確認頂く事は可能でしょうか。\nお忙しいところ恐縮ですが、よろしくお願いいたします!\n\nHRMOSリンク`
console.log(draft);
const response = { text: draft };
return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}
function greeting(now) {
if(now < 12 ){
return 'おはようございます。'
}else{
return 'お疲れ様です。'
}
}
//date.getDay()で出力した数字を渡して、曜日を返す
function dayOfTheWeek(day) {
let string;
switch(day){
case 0: string = '日';
break;
case 1: string = '月';
break;
case 2: string = '火';
break;
case 3: string = '水';
break;
case 4: string = '木';
break;
case 5: string = '金';
break;
case 6: string = '土';
break;
}
return string
}
この記事が気に入ったらサポートをしてみませんか?