Skip to content

Instantly share code, notes, and snippets.

  • Save apivat60/c07b9fb4f21dfc04b380dfd37ce70f6c to your computer and use it in GitHub Desktop.
Save apivat60/c07b9fb4f21dfc04b380dfd37ce70f6c to your computer and use it in GitHub Desktop.
function myFunction() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
var data1 = sheet1.getRange(sheet1.getLastRow(), 2,1,sheet1.getLastColumn()).getValues()[0];
//==================================================="
let data,output1 ="",output2 ="",output3 ="",output4 =""
data = sheet2.getDataRange().getDisplayValues()
data.shift()
data.forEach((row,i) =>{
output1 += data1[i]+'\n'
output2 +=row[1]+'\n'
output3 += row[2]+'\n'
output4 += row[3]+'\n'
})
var date = Utilities.formatDate(new Date(), 'GMT+7', 'dd/MM/');
var thaiyear = Number(Utilities.formatDate(new Date(), "GMT+7", "yyyy"))+543;
var output5 = 'วันที่ '+date+thaiyear;
var temp= DriveApp.getFolderById("ไอดีโฟลเดอร์ temp");
var TemplateSlide = 'ไอดีไฟล์แม่แบบSlide';
var Slide = SlidesApp.openById(TemplateSlide);
var Shapex1=Slide.getSlides()[0].getShapes()[0].getText().setText(output1);
var Shapex2=Slide.getSlides()[0].getShapes()[1].getText().setText(output2);
var Shapex3=Slide.getSlides()[0].getShapes()[2].getText().setText(output3);
var Shapex4=Slide.getSlides()[0].getShapes()[3].getText().setText(output4);
var Shapex5=Slide.getSlides()[0].getShapes()[4].getText().setText(output5);
Slide.saveAndClose();
var file = DriveApp.getFileById(TemplateSlide);
var copyFile = file.makeCopy('img'+ Math.random()+ file.getName( ),temp);
var copyId = copyFile.getId();
var copyDoc = SlidesApp.openById(copyId);
copyDoc.saveAndClose();
start(copyId);
copyFile.setTrashed(true);
}
// บันทึก Slide ให้เป็นรูปภาพ เพื่อใช้ในการส่งรูปไปกับไลน์แจ้งเตือน
function downloadPresentation(id) {
var slideIds = getSlideIds(id);
let imagesblob = []
for (var i = 0, slideId; slideId = slideIds[i]; i++) {
imagesblob.push(downloadSlide('Slide ' + (i + 1), id, slideId));
}
return imagesblob
}
function downloadSlide(name, presentationId, slideId) {
var url = 'https://docs.google.com/presentation/d/' + presentationId +
'/export/png?id=' + presentationId + '&pageid=' + slideId;
var options = {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var image = response.getAs(MimeType.PNG);
image.setName(name);
return image
}
function getSlideIds(presentationId) {
var url = 'https://slides.googleapis.com/v1/presentations/' + presentationId;
var options = {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var slideData = JSON.parse(response);
return slideData.slides.map(function(slide) {
return slide.objectId;
});
}
function start(SlideFileID) {
let images = downloadPresentation(SlideFileID);
images.forEach(image=>{
sendNotify(image,token)
})
}
//ส่งไลน์แจ้งเตือน + รูปภาพ
var token = 'โทเค่น Line';
function sendNotify(image,tokenID){
let payloadJson = {
"message": "📣 ใส่ข้อความที่ต้องการแจ้งเตือนตรงนี้ ",
"imageFile": image
};
let token = [tokenID]; //ใส่ access token ที่ใช้งาน
let options = {
"method": "post",
"payload": payloadJson,
"headers": {
"Authorization": "Bearer " + token
}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment