13 พ.ย. 2020 เวลา 09:24 • วิทยาศาสตร์ & เทคโนโลยี
วิธีทำ Google Sheets ให้แจ้งเตือนใน Line
บทความนี้จะสาธิตวิธีทำให้ Google Sheets ทำการแจ้งเตือนใน Line ตัวอย่างการสาธิต สมมติเป็นการจำลองการมอบหมายงานให้กับผู้ร่วมงาน
โจทย์ปัญหา
เมื่อมอบหมายงานใน Google Sheets แล้วให้มีการเตือนข้อความทาง Line กับผู้ที่ได้รับมอบหมายนั้นๆ ด้วย
ขั้นตอนวิธีการ
1. สร้าง Token (Generate Token) ใน Line Notify ของแต่ละคน
2. สร้างฟอร์มใน Google Sheets
3. เขียนสคริปต์ใน Google Sheets
4. ทดสอบการใช้งาน
สิ่งที่จะได้รับจากบทความ
1. รู้จักวิธีใช้ Line Notify ให้เป็นประโยชน์
2. รู้จักเขียนสคริปต์การส่งข้อความจาก Google Sheets ไปยัง Line
มาเริ่มกันเลย
ขั้นตอนที่ 1 สร้าง Token (Generate Token) ใน Line Notify ของแต่ละคน
1.1 ให้ทีมงานทุกคนเข้าไปที่ https://notify-bot.line.me/th/ แล้วล็อกอินเข้าสู่ระบบด้วยบัญชี Line ของตนเอง (ในตัวอย่างจะมี 2 คน ดังนั้นจะมี Token จะ 2 ชุด ที่แตกต่างกัน) โดยทำขั้นตอนดังนี้
1.2 ไปยัง “หน้าของฉัน”
1.3 เลือก ออก Token จากนั้นตั้งชื่อ Token ว่า “My Job” ถัดไปทำการเลือกห้องแชทที่ต้องการส่งคำเตือน ในที่นี้เลือกส่งเข้าตัวเอง
1.4 คัดลอก Token เก็บไว้ให้ดี เอาใส่ใน docs หรือ keep หรือ Word หรือ Notepad ก็ได้ อย่าให้หาย
ขั้นตอนที่ 2 สร้างฟอร์มใน Google Sheets
 
สร้าง Sheets ชื่อว่า Google Sheet to line แล้วพิมพ์ตามตัวอย่างเลยครับ โดยตรงช่องมอบหมายก็กำหนดชื่อทีมงานของตนไปได้เลย
ขั้นตอนที่ 3 เขียนสคริปต์ใน Google Sheets
 
3.1 ไปยัง Sheets ไปที่เครื่องมือ และ โปรแกรมแก้ไขสคริปต์
3.2 ให้ตั้งชื่อสคริปต์ และพิมพ์สคริปต์ตามนี้
function sentline() {
var ssId = "1ySBHPvg8CcpgEr8_sDIZRuWp06fb6Bj9XXxxxx";
var ss = SpreadsheetApp.openById(ssId);
var sheet = ss.getSheetByName("แผ่น1");
var startRow = 2;
var numRows = sheet.getDataRange().getLastRow();
var lastCols = sheet.getDataRange().getLastColumn();
var dataRange = sheet.getRange(startRow,1,numRows - 1,lastCols);
var data = dataRange.getValues();
var greecha = 'q8W3DsWKXFTIuzZfrFfhGI7kbYqpoxxxx'; // Token ของคนที่ 1
var teera = 'MfDnAV0yWDRkk0BkK6EDO3M0LaP3xxxx'; // Token ของคนที่ 2
var to='';
 
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var message = "ถึง คุณ " + row[3] + "\n\n";
message = message + "ได้รับงานต่อไปนี้" + "\n\n";
message = message + "งานเลขที่ : " + row[1] + "\n";
message = message + "รายละเอียดของงาน : " + row[2] + "\n";
 
var sent = row[4];
if (sent != "sent") {
// ส่ง line
if (row[3] == "greecha") { to = greecha;}
else if (row[3] == "teera") {to = teera;}
 
 
sendMS(to , message);
 
//บันทึกใน sheet ว่าส่งแล้ว
sheet.getRange(startRow + i, lastCols).setValue("sent");
}
}
}
4
function sendMS(to,message)
{
var formData = {
'message': message,
};
 
var options = {
'method' : 'post',
'headers' : {'Authorization': "Bearer "+to},
'contentType': 'application/x-www-form-urlencoded',
'payload' : formData
};
UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options);
}
1
//create menu
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Send to Line')
.addItem('Send', 'sentline')
.addToUi();
}
1
3.3 ทำการแก้ไข ssID และ Token ของแต่ละคน
3.4 รันสคริปต์ และตรวจสอบสิทธิ์ เลือกบัญชีตัวเอง และอนุญาต เริ่มแรกให้รันฟังก์ชั่น onOpen ก่อน เพื่อให้เกิดเมนูที่ sheets ทำให้ง่ายแก่การออกคำสั่งรัน
ขั้นตอนที่ 4 ทดสอบการใช้งาน
เลือกเมนู Send เพื่อรันโปรแกรม ส่งข้อความไปยัง Line
ข้อความในไลน์ ของแต่ละคน ก็จะประมาณนี้
โฆษณา