สวัสดีครับ วันนี้จะพาเขียนโค้ด Apps Script นำจำนวนและดึงรายชื่อไฟล์แจ้งเตือนผ่าน Line Bot กัน มีประโยชน์มาก ๆ ครับ สำหรับการเรียกดูข้อมูลไฟล์ใน Folder ของ Google Drive
สิ่งที่ต้องเตรียมคือ Line OA ให้ปิดการตอบกลับอัตโนมัติ และทำการผูก Webhook ไว้กับ Google Sheet ให้เรียบร้อยก่อนเริ่มทำนะครับ เรามาเริ่มต้นทำกันดีกว่า
เริ่มแรกให้เพื่อน ๆ เปิด App Script ขึ้นมา จากนั้นเพิ่มไลบรารี LineBotSdk 1KsjhQa6oymhUiACWsAlFTG_XoN8Pnz4px2ekABPjO4tSMX6xRSQMBicy โดยเลือกเวอร์ชั่นสูงที่สุด จากนั้นให้คัดลอกโค้ดด้านล่างไปไว้ใน Apps Script ได้เลยครับ
const ACCESS_TOKEN = "xxxxx";
const bot = new LineBotSdk.client(ACCESS_TOKEN);
const theFolder = DriveApp.getFolderById('mmmm');
function doPost(e) { bot.call(e, callback) };
function callback(e) {
if (e.message.text == "จำนวนไฟล์" ) {
countFilesInFolder(e)
}
else if (e.message.text == "รายชื่อไฟล์" ) {
nameFilesInFolder(e)
}
};
function countFilesInFolder(e) {
var count,file,files;//Define variables without assigning a value
files = theFolder.getFiles();
count = 0;
while (files.hasNext()) {
count++;
file = files.next();
};
bot.replyMessage(e, [bot.textMessage('ไฟล์มีทั้งหมด: ' + count + " ไฟล์")]);
};
function nameFilesInFolder(e) {
var count,file,files, msg;//Define variables without assigning a value
var msg = ""
files = theFolder.getFiles();
count = 0;
while (files.hasNext()) {
count++;
file = files.next();
msg += count + ". " + file.getName() +"\n"
};
bot.replyMessage(e, [bot.textMessage("รายชื่อไฟล์มี ดังนี้" +"\n"+ msg)]);
};
เมื่อคัดลอกไปไว้ที่ Apps Script แล้ว ให้เพื่อน ๆ นำ ACCESS_TOKEN ไปแทนที่ xxxxx และนำรหัส Folder Id ไปแทน mmmm กด Deploy ก็เป็นอันเสร็จเรียบร้อยครับ
วิธีการใช้งานให้พิมพ์คำว่า
1. จำนวนไฟล์ บอทจะทำการนับจำนวนไฟล์ที่อยู่ใน Folder ของเราให้
2. รายชื่อไฟล์ บอทจะทำการดึงรายชื่อไฟล์ที่อยู่ใน Folder ของเราให้