การเขียน code โดยเนื้อหาเน้นการใช้ Google Apps Script

 การเขียน code โดยเนื้อหาเน้นการใช้ Google Apps Script (โดยย่อ)

Introduction

Google Apps Script โดยพื้นฐานคือ Javascript และ เพิ่มเติมด้วยคำสั่งต่างๆ เพื่อที่จะสามารถสั่งงานและเรียกใช้ function ต่างๆ ของ Google Apps 11 ตัว รวมทั้ง Google Translate และใช้งานร่วมกับ Google Cloud Platform

 

Google Apps Script เขียนได้ง่าย และ เหมาะสมที่สุดในการเขียน code ใช้งานร่วมกับ Google Apps การเขียนสามารถเขียนบน  Browser ได้เลยโดยไม่ต้องลงโปรแกรมใดๆ และ Script จะถูก host และ run บน server ของ Google ดังนั้นจึงสามรถพัฒนาและใช้งานได้บนเครื่องคอมพิวเตอร์ทุกแบบ ไม่ว่าจะเป็น PC Mac Chromebook  หรือแม้แต่บน Smartphone หรือ Tablet

workshop3-google-apps-script-code-cloud-computing-10เนื่องจากการเขียน Google Apps Script ต้องการความรู้พื้นฐานการเขียน Javascript ผู้ที่ไม่เคยเขียน  Javascript สามารถทำตามแบบฝึกของ workshop นี้ได้ แต่ควรศึกษาเพิ่มเติมฟรีได้ที่ http://codecademy.com/tracks/javascript

 

Type of Script

Apps Script แบ่งเป็น 3 ประเภท คือ

Standalone Scripts

Script ที่อยู่เดี่ยวๆ ไม่ผูกกับ google apps (แต่สามารถเรียกใช้ Google Apps ได้) และจะปรากฎให้เห็นบน Google Drive เหมือนไฟล์อื่นๆ

Scripts Bound to Google Sheets, Docs, or Forms

Script ประเภทนี้จะสร้างขึ้นจากไฟล์ Google Apps อื่นเช่น Sheets, Forms และจะผูกอยู่กับไฟล์นั้นเป็นส่วนหนึ่งของไฟล์นั้น ดังนั้นเราจะไม่เห็นมันอยู่ใน Drive ของเรา

Web Apps and Google Sites Gadgets

ถ้าเราสร้าง User Interface ให้ Script ของเรา (เช่นด้วย  html + css) เราก็สามารถ publish เป็น web apps ได้ โดย ผู้ใช้งานสามารถเรียกใช้งานได้โดยตรงผ่าน  browser เช่นเดียวกับ web apps ทั่วไป

workshop3-google-apps-script-code-cloud-computing-04

จากนั้นผู้เข้าร่วมอบรม ร่วมกันทำแบบฝึกหัดตามตัวอย่างของ Google เริ่มจาก 

Sample Apps Script

workshop3-google-apps-script-code-cloud-computing-05

** เพื่อป้องกันความผิดพลาดในการ run script แนะนำว่าควรเปลี่ยนภาษาการใช้งานของ google account เราเป็นภาษาอังกฤษก่อน

ตามธรรมเนียมแล้วก็ต้องเริ่มด้วย script Hello world กันก่อน  scriptนี้จะสั่งให้สร้าง google doc ที่ชื่อ Hello, World! แล้วส่ง link ของไฟล์มาให้เราทาง e-mail
มีขั้นตอนการสร้างดังนี้

1. ไปที่ script.google.com (log in ด้วย google account)

2. คลิก Start Scripting

3. ปิด welcome screen

4. ลบ code ใน editor และ เขียน code ตัวอย่างด้านล่างนี้ลงไปแทน


function createAndSendDocument() {
 
var doc = DocumentApp.create('Hello, world!');
doc.getBody().appendParagraph('This document was created by Google Apps Script.');
var url = doc.getUrl();
var email = Session.getActiveUser().getEmail();
var subject = doc.getName();
var body = 'Link to your doc: ' + url;
GmailApp.sendEmail(email, subject, body);
 
}

5. save file

6. click ► (run)

7. อนุญาติสิทธิ์ต่างๆให้กับ Script

 

เท่านี้ เราก็จะได้รับ mail แจ้ง link ของไฟล์ Doc ที่ถูกสร้างโดย ​Script ซึ่งจะอยู่ใน Drive เรานั่นเอง งานที่ดูจะซับซ้อนกลับเขียนได้ด้วย code แค่  7 บรรทัดเท่านั้น สั้นและง่ายมากๆworkshop3-google-apps-script-code-cloud-computing-06

 

* รายละเอียดตัวอย่างนี้และวิดีโอสาธิต ดูได้ที่ https://developers.google.com/apps-script/overview



ที่มาครูสมชายคัดมาจาก : {getButton} $text={ที่มาอ้างอิง} $icon={link} $color={red}

*******************************

ลองเล่น Google Apps Script ใน Google Sheets

Google Apps Script คืออะไร ?

อธิบายคร่าวๆ ก็คือ Google Apps Script เป็นภาษาโปรแกรมที่เขียนไว้ใช้กับพวก Google Docs, Google Sheets, Google Slides และ Google Forms เพื่อให้สามารถสร้างฟังก​์ชั่นใหม่ๆ หรือกำหนดการทำงานนอกเหนือจากสิ่งที่ Apps ทำได้ ในแบบท่ีเราอยากจะทำ

ข้อดี: มีฟังก์ชั่นหรือคำสั่งพิเศษที่รองรับเฉพาะ Apps ต่างๆ มาให้ใช้ด้วย

Google Apps Script เขียนยังไง ?

Example: ฟังก์ชั่น combine() ใช้สำหรับการรวมค่าของ List1, List2

เป็นภาษาที่ base on มาจากภาษา JavaScript ถ้าเขียน JS เป็น ก็เขียนได้แน่นอน!

ลองเขียนมาใช้งานกับ Google Sheets กันเถอะ

Step 1: เข้าที่ Google Drive ของตัวเอง หรือ https://drive.google.com/drive/ แล้วก็กดสร้าง Google Sheets ขึ้นมา

Step 2: เลือกที่ Tools -> Script editor

Step 3: จะขึ้นหน้าตาประมาณนี้

แล้วลองพิมพ์ Logger.log(‘Hello, World’) แล้วกดปุ่ม Play (ลูกศรชี้ไปทางขวา)

function myFunction() {
Logger.log('Hello, World');
}

ก็จะขึ้นให้ตั้งชื่อ Projects พอตั้งชื่อเสร็จมันก็จะรันแต่จะไม่เกิดอะไรขึ้น (ไม่ต้องตกใจ) เพราะจริงๆ มันทำงานแล้วแต่แค่เราไม่รู้ว่ามันทำงานเพราะจากคำสั่งเราสั่งแค่ให้มัน Log ข้อความ Hello, World ไปเฉยๆ ให้กดปุ่ม Commard + Enter สำหรับ mac หรือ กด View -> Logs (ตามรูป)

จะขึ้นผลลัพธ์ประมาณนี้

ถ้าเรียบร้อยแล้วก็ลุยกันต่อ!!

Step 4: สร้างฟังก์ชันของตัวเอง เช่น mySum

function mySum(num1, num2) {
return num1 + num2;
}

เวลาใช้งานก็แค่กลับไปที่ Google Sheet ที่เคยสร้างไว้แล้วเรียกใช้ฟังก์ชัน mySum เหมือนใช้งานฟังก์ชันทั่วไปของ Google Sheet แล้วใส่ค่าที่จะให้บวกกันเข้าไป (ตามรูป)

อยากจะทำฟังก์ชั่นเพิ่มก็ เข้าไปที่ Google Apps Script แล้วก็เขียนฟังก์ชันอื่น ที่อยากทำเพิ่มเข้าไป

function combine(list1, list2) {
var result = [];
for(var i=0; i < list1.length; i++) {
for(var j=0; j < list2.length; j++) {
result.push(list1[i] + list2[j]);
}
}

return result.join();
}

ตัวอย่าง: เรียกใช้ฟังก์ชันแบบเป็น range input

เรียบร้อย!! ได้ฟังก์ชั่นของตัวเองที่เพื่อใช้งานแล้ว

สรุป

Google Apps Script เป็นอีกหนึ่งทางเลือกท่ีดีเลยสำหรับคนที่ใช้งาน Google Sheets อยู่ประจำแล้วอยาก Custom function ใช้เอง รวมถึงคนที่ไม่เคยใช้เลย แต่สามารถเขียน JavaScript ได้ ก็สามารถทำฟังก์ชันเพื่อเอามาใช้งานตามโจทย์ที่ต้องการได้

ข้อดีอีกข้อคือ Script ที่เขียนไว้สามารถแชร์ให้ใช้งานร่วมกันกับชีทอื่นๆ ได้และรวมถึงสามารถนำไปใช้งานร่วมกับ Apps อื่นๆ ของ Google ได้อีกด้วย

Tips:

  1. การ Debug ฟังก์ชันที่สร้างขึ้นมา ทำได้ด้วยการใช้ Logger.log();
    แล้วกดดูที่ View -> Log หรือ cmd + enter ส่วนฟังก์ชั่นไหนที่ต้องโยน Parameter เข้ามาในฟังก์ชัน ก็ประกาศไว้ที่ฟังก์ชันนั้นไว้เลย

ตัวอย่าง

function combine(list1, list2) {
var result = [];

for(var i=0; i < list1.length; i++) {
for(var j=0; j < list2.length; j++) {
result.push(list1[i] + list2[j]);
}
}
return result
}

จะ Debug ก็ประมาณนี้

/* Comment เพื่อให้ฟังก์ชันเรียกแบบไม่ต้องส่ง Parameters*/
// function combine(list1, list2) {
function combine() {
var result = [];
var list1 = ['a', 'b', 'c'];
var list2 = ['x', 'y']

for(var i=0; i < list1.length; i++) {
for(var j=0; j < list2.length; j++) {
result.push(list1[i] + list2[j]);
}
}
/* Log ดู Result ของ function */
Logger.log(result);

return result;
}

2. Google Apps Script จะมีส่วนที่ให้เราใช้งาน API ของ Google บางอย่างได้อยู่ในส่วนของ Resources -> Advanced Google Services เช่น Youtube API, Google Map API ทำให้เราสามารถดึงข้อมูลรายละเอียดของวิดีโอ หรือข้อมูลแผนที่ได้

สามารถไปศึกษาเพิ่มเติมได้ที่ https://developers.google.com/apps-script/guides/videos


ที่มาครูสมชายคัดมาจาก : {getButton} $text={ที่มาอ้างอิง} $icon={link} $color={red}

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า