Showing posts with label Programes. Show all posts

การ Resize รูปภาพบน Google Drive โดยใช้ Google Script

clip_image001

        ก่อนอื่นต้องกราบสวัสดีเพื่อนๆ พี่ๆ น้องๆ ที่เข้ามาอ่านบทความนี้นะครับ พยายามหาเวลาและโอกาสเข้ามาแนะนำการเขียนบทความเกี่ยวกับ Google script เพื่อเป็นแนวทางการพัฒนาต่อยอดทางโปรแกรม ซึ่งผมเป็นสาวกพวกชอบของฟรี และพี่Goo ก็ดันใจดีซะมากมายก่ายกอง ต้องขอบพระคุณพี่ Goo อย่างมากๆเลยนะครับ ที่ทำให้ชาวโลกได้เห็นว่าของฟรีเขาก็มีในโลกนะจ๊ะ

         มาเข้าเรื่องเลยนะครับ ต้องติดตามบทความอื่นๆที่เขียนผ่านมาเพื่อเป็นพื้นฐานการเขียน Google Script ผมจะพยายามแนะนำวิธีการทำตั้งแต่พื้นฐานให้เข้าใจได้ง่ายที่สุดนะครับ

         กรณีนี้หากเราต้องการบังคับ หรืออัพโหลดรูปเก็บไว้ใน Google Drive โดยจะอยากให้รูปภาพได้ตามขนาดตามที่ตนเองต้องการ เรียกว่า Resize image ประมาณนั้นสมมุติว่าผมอัพภาพขึ้นไปบน Google Drive แล้วต้องการเขียนโปรแกรมเพื่อลดขนาดของภาพที่ผมอัพ โดยใช้ Google script จะต้องทำตามขั้นตอนดังนี้ครับ

1) เข้าสู่ระบบ  Google     

image

2) กดที่ปุ่ม เก้าจุดมหัศจรรย์   

image

3) เลือก Google Drive    แล้วเข้าไป Folder ที่ต้องการสร้าง โปรแกรม Resize รู้ปภาพซึ่งเป็นโฟลเดอร์เดียวกับภาพที่เราอัพโหลดมาเก็บไว้เพื่อต้องการลดขนาด  เริ่มจากตามภาพ คือ ตอนนี้เราอยู่ที่ Google Drive อย่าลืมนะครับ คลิกที่ New  เลือก Folder แล้วสร้างชื่อโฟลเดอร์ ในที่นี้ ผมตั้งชื่อว่า Resize Image by GoogleScript -2018

image

4) คลิกที่ New   (ต้องอยู่ที่โฟลเดอร์ที่สร้างใหม่นะครับ) คลิกเลือก Google Script

image

5) ดำเนินการตั้งชื่อโปรแกรม หรือชื่อไฟล์   


image

6) กลับมาที่โฟลเดอร์ Google Drive   เรา ให้เราดำเนินการสร้างไฟล์ Google Docs เพื่อใช้ Application นี้ จัดการ Risize ให้ดำเนินการตามรูปภาพด้านล่างนี้ คือ คลิก New แล้วเลือก Google Docs จะได้ไฟล์ใหม่ดังภาพถัดมา

imageimage

อย่าลืม Copy id key ของไฟล์นี้ไปใช้งานด้วยครับ

image

7) จากนั้น ให้สลับมาที่ตัวสคริป เริ่ม เขียนโปรแกรมดังนี้ครับ  

function ResizeImage2018() {
 
   // กำหนดการเปิดใช้งาน google Docs โดยก็อปปี้ idKey จากไฟล์ Google Docs ของเรา
      var doc1 = DocumentApp.openById(" ????  ");
   // ดึง Id Key ของไฟล์รูปภาพที่เราอัพโหลดไปไว้ในโฟลเดอร์
      var image1  = "
https://drive.google.com/uc?export=view&id=?????"; 
   // สร้างตัวแปรเก็บไฟล์รูปภาพในรูปแบบของ blob
      var blob    = UrlFetchApp.fetch(image1).getBlob() ;
   // ตั้งค่าโฟลเดอร์ไว้สำหรับรองรับจัดเก็บไฟล์ใหม่ที่เราต้องการสร้าง 
      var folder = DriveApp.getFolderById("???????");

  // ทำการเช็คด้วยว่าในไฟล์มีภาพกี่ภาพ แล้วเราจะแทรกภาพไว้ภาพต่อจากสุดท้าย
      var lenImage = doc1.getBody().getImages().length;
   // ทำการแทรกภาพไปที่ตำแหน่ง 0 ของไฟล์ Google Docs และทำการ Resize ให้ได้ขนาดภาพตามที่เราต้องการ
      var insertImage =  insertImage = doc1.getBody().insertImage(lenImage,blob).setWidth("300").setHeight("300");
  
   // เมื่อดำเนินการแทรกภาพแล้ว รูปภาพที่เราอัพก็จะไปอยู่ที่ไฟล์ Google docs เรา สามารถเปิดดูได้
      lenImage = doc1.getBody().getImages().length-1 ; //เก็บค่าลำดับภาพที่สุดท้าย
   var imageResize = doc1.getBody().getImages()[lenImage]; // จากนั้น เรา ก็สร้างตัวแปร เก็บรูปภาพสุดท้าย
  
// ทำการสร้างภาพที่ดำเนินการ Resize ใหม่แล้วเป็นไฟล์ใหม่ ในโฟลเดอร์ที่เราเตรียมไว้
// สร้างเป็นไฟล์นามสกุลใดก็ได้ ตามฟังชั่น MimeType. (gif png jpg อื่นๆ )
// และสร้างชื่อไฟล์ตามด้วยชื่อเก่า
var name = "NewImage_"+blob.getName(); //ตามด้วยชื่อเก่าของไฟล์รูปภาพครับ
       var NewImage  =  folder.createFile(imageResize.getBlob().getAs(MimeType.JPEG)).setName(name) ;
  
   // จบ เราจะได้ไฟล์ที่ชื่อตามที่เราต้องการในโฟลเดอร์
}


Copy โค้ดด้านบน แล้ว วางบนพื้นที่  Script  จากนั้น    นำ ID Key ของไฟล์ Google Docs  ของไฟล์รูปภาพ  และโฟลเดอร์ วางแทน เครื่อง ?  สีแดง  จากนั้น ก็กดรันที่ปุ่ม สามเหลี่ยมสีดำ ดังภาพด้านล่างนี้ครับ จะเกิดกระบวนการ Autorization เพื่อให้ Acount หรือบัญชีของท่านเปิดการใช้งาน Script นี้

image

ดูที่ภาพด้านล่างครั้งแรกที่ดำเนินการ รันสคริป จะเกิด การไม่สามารถ verified หรือทำการตรวจสอบได้ให้คลิกที่ Advanced เพื่อแสดงว่าท่านคือ ผู้พัฒนาตัวจริง  คลิกที่ ALLOW นะครับ จากนั้น ก็กด รันอีกครั้ง

image

เมื่อกดรันอีกครั้ง สคริปก็จะทำงาน เราก็จะไดไฟล์พร้อมกับขนาดของไฟล์ใหม่ตามที่เราตั้งค่าไว้ครับ ดังภาพ  เป็นการแสดงไฟล์ใหม่ที่สคริปสร้างขึ้นใหม่

image

และสามารถตรวจสอบรูปภาพที่ไฟล์ Google Docs จะมีภาพล่าสุดที่เราทำการ ตามรูปภาพด้านล่างครับผม

image


สุดท้ายหวังว่าบทความนี้จะมีประโยชน์ สามารถนำไปต่อยอดกับท่านได้ในอนาคต  หากจะเป็นการดีก็ส่งคำทักทายสั้นๆเป็นกำลังใจกันมาตรงโพสต์ด้านล่าง
ขอบคุณครับผม มีเวลาจะเขียนบทความอีกนะครับผม






ับ

ใช้ Google Forms เพื่อ Upload ไฟล์ได้แล้ว

Google Forms เป็นบริการที่ดีที่สุดสำหรับการสร้างฟอร์มออนไลน์ แต่พวกเขาพลาดคุณสมบัติหลักบางอย่างที่พบในผู้สร้างฟอร์มเว็บเชิงพาณิชย์ ตัวอย่างเช่น Google Forms ไม่อนุญาตให้อัปโหลดไฟล์ไปยัง Google ไดรฟ์ไม่สนับสนุน CAPTCHA เพื่อป้องกันสแปมและสิ่งที่อาจเป็นประโยชน์ต่ออุตสาหกรรมกฎหมายและการค้าปลีก Google Forms ไม่สามารถจับภาพลายเซ็นอิเล็กทรอนิกส์ได้


ครูในโรงเรียนอาจต้องการสร้าง Google ฟอร์มซึ่งนักเรียนสามารถอัปโหลดการกำหนดและไฟล์จะถูกบันทึกลงใน Google ไดรฟ์ของเธอโดยอัตโนมัติ แต่จะอยู่ในโฟลเดอร์นักเรียนแยกต่างหาก ฝ่ายทรัพยากรบุคคลของ บริษัท อาจต้องการสร้างแบบฟอร์มออนไลน์ที่ผู้สมัครงานสามารถอัปโหลดประวัติย่อในรูปแบบ PDF หรือ Word ได้


เริ่มต้นปฏิบัติการกันเลยนะครับ


  1. สร้าง Google Forms ด้วย Google Apps Account คือเข้าสู่ระบบด้วย gmail ก่อนนะครับ


  1. สร้างคำถามตามปรกติ แล้วในส่วนของการ Upload ไฟล์ คลิก Option ของชนิดของคำถามแล้วเลือกเป็น File Upload

  1. จากนั้นยอมรับเงื่อนไข โดยคลิก Continue

  1. จากนั้น สามารถ กำหนดขนาดสูงสุดของไฟล์ได้

  1. กำหนดชนิดของไฟล์ก็ได้ คลิก แล้ว Apply

  1. กำหนดจำนวนของไฟล์ที่จะ Upload ก็ได้

  1. เมื่อมีผู้ส่งไฟล์เข้ามา

  1. ก็จะเก็บไว้ใน Google Drive ขึ้นต้นด้วยชื่อไฟล์ แล้ว มีชื่อ (ตาม Email address) ของผู้ส่ง

  1. แต่ไม่ต้องห่วง หากมีการส่งชื่อไฟล์ซ้ำกัน จากคนๆเดียวกัน ไฟล์ใน Google Drive จะแยกจากกันด้วย Unique ID เราสามารถเห็นความแตกต่างได้จากเวลา


  1. และในส่วนของ Response ก็จะมองเห็นว่า ใครส่งไฟล์อะไรมา




การให้สิทธิ์การเข้าถึงข้อมูลบัญชี Google ของแอปพลิเคชัน ของ 3rd Party ด้วย Google Apps Script

การให้สิทธิ์การเข้าถึงข้อมูลบัญชี Google ของแอปพลิเคชันบุคคลที่สาม ภายใต้องค์กรของ Google Education หรือองค์กรในเครือ Google โดยใช้ Google App Script บน Blogger หรือ Hostting อื่นๆครับ


นานๆครั้งจะมีโอกาสเข้ามาเขียนบทความให้ความรู้เพื่อนๆ พี่ๆ น้องๆ ครั้งนี้มาลองใช้ Google App Script เขียนเช็คตรวจสอบอีเมล์ภายใต้ อีเมล์ของ Google โดยในตัวอย่างจะเป็นการใช้ตรวจสอบสิทธิอีเมล์ของโรงเรียนอำนาจเจริญ (ร.ร.ที่ผู้เขียนสอนในปัจจุบัน) คือ @anc.ac.th บนเว็บทั่วไป ในที่นี้ จะนำเสนอในบทความนี้เลย  

มาเริ่มวิธีการเลยครับ
  1. เข้า ไปที่เว็บนี้ คลิกเพื่อเปิด  (อย่าลืมเข้าสู่ระบบด้วยอีเมล์ขององค์กรของท่านก่อน)เว็บ Google Apps script ที่ทำโค้ดไว้ให้เรียบร้อย ท่านมีหน้าที่ศึกษาเพิ่มเติมในโค้ดได้เลยครับ  (ต้องมีพื้นฐาน Html นิดๆนะครับ)
  2. ก่อนอื่นต้องทำการ Mack copy ไว้ที่ Google Drive ของท่านก่อนนะครับ
  3. จากนั้นก็เริ่มแก้โค้ดกันเลยครับ..
แก้ที่ไฟล์ index.html ที่บรรทัด 53 ซึ่งโค้ดที่จะได้มาจะต้องไปทำตามขั้นตอนที่ 4 ก่อนนะครับ
  1. ขั้นตอนนี้ต้องดำเนินการเปิด APIs & Services  ดังนี้ครับ
    1. เข้าเว็บ  Google API Console หน้าตาดังภาพด้านล่างครับ
⇒  จากนั้นอย่าลืมสร้าง Project ตามภาพด้านล่างก่อนนะครับ
⇒  จากนั้นเข้าแท็บนี้ ⇒   Credentials
⇒  เริ่มสร้าง Credentials ตามภาพด้านบน ด้วยวิธี 1-3 เลยตามนั้นครับ

⇒  จากนั้นจะเข้าแท็บใหม่ตามภาพด้านบน  ให้ทำตาม 1-5 โดย
  • เลือก Web application   
  • กรอกชื่อ Project name
  • กรอกชื่อเว็บไซต์ของท่าน
  • กรอกชื่อเว็บเมื่อเข้าสู่ระบบได้แล้ว มันก็จะทำการ refresh เว็บปลายทาง ในหัวข้อที่ 4 นี้
  • ทำการสร้างกดที่ปุ่ม Create

  1. จากนั้นนำโค้ดที่ได้จากขึั้นตอนที่ผ่านมา ดังแสดงตามรูป ทำการ Copy โค้ดนี้ไปแปะแทนที่โค้ดเก่าที่ ขั้นตอนที่ 1

  1. กลับไปที่ Google Apps script แล้ววางแทนที่โค้ดเก่าตามภาพครับ

⇒  และ copy ลิงค์ที่เมื่อเข้าสู่ระบบแล้วไม่ถูกต้อง จะมีปุ่ม Logout ถ้าคลิกปุ่ม Logout จะวิงไปที่ลิงค์นี้ตามภาพ...


  1. ทำการ Deploy โค้ดที่เราแก้ตามขั้นตอนที่ดำเนินการผ่านมาตามรูปภาพ  แล้วก็อปปี้ลิงค์ข้อที่ 3 ไปใช้ในเว็บเราครับ



  1. โค้ดที่จะใช้วางในเว็บเราคือ ก็อปปี้ไปตามนี้ครับ
เอาโค้ดที่ก็อปจากข้อที่ 7 มาวางแทนสีแดงนะครับ แล้วนำไปใช้ในเว็บเราได้เลย  

<iframe frameborder="0" height="290" id="ifram1" onload="iframeDidLoad();" scrolling="no" src="https://script.google.com/macros/s/AKfycbw1yzZ3m-dqHUEDp01LU_Wwh7OENg9IEMX36-Uj5-KrhT3LDgwS/exec" width="600"></iframe>

ยังไม่เสร็จนะครับ

 ต่อ ด้วยเมื่อนำไปรันหรือทดสอบแล้วคลิกที่ปุ่ม

SigIn มันจะขึ้น Error ดังภาพนี้ครับ




ให้คลิกที่ Request Details แล้วคลิกขวา เลือกทั้งหมด copy code ทั้งหมดไปวางใน notepad หรืออะไรก็ได้ที่สามารถดูโค้ดที่ก็อปปีมาดูได้ครับ
แล้วเลือกก็อปปีดังภาพนี้นะครับ

ก็อปปี้ตามภาพด้านบน นำไปที่ https://console.developers.google.com
แล้วอย่าลืม SAVE

แล้วลอง Refresh หน้าเว็บทดลองดูอีกครั้งครับ หากผ่านจะได้ดังภาพครับ


หวังว่าคงจะเป็นประโยชน์ไม่มากก็น้อยสำหรับหลายๆท่านที่กำลังศึกษา หรือจะนำไปใช้งานครับผม






Loading Loading  ทดสอบระบบการตรวจสิทธิ์การเข้าถึง Gmail

มอบหมายหน้าที่ให้ตัวแทนในกลุ่มเพียงคนเดียวส่งงาน
กรุณาเช็คการส่งให้รอบคอบด้วย อย่าให้พลาดเป็นอันขาด
Loading
..กำลังโหลด LOADING ..
คลิกตรวจสอบการส่งงาน

การแจ้งเตือน LINE ด้วย API เพื่อโพสต์ลงนใน LINE องค์กร โดยใช้ Google Apps Script


LINE ประกาศเปิดตัว Messaging API ตัวใหม่  อธิบายตามความเข้าใจของผมนะครับ เคยคิดเหมือนกันว่าจะส่งข้อความหรือข่าวสารสำคัญจากเว็บอัตโนมัติ ไปยังกลุ่มได้ยังไง ก็ลองหาดูก็มียากๆทั้งนั้น แต่ตอนนี้ ไปเจอบทความนึงในหลายเว็บ ก็เลยมาศึกษาดู ก็มีแต่ใช้ PHP  หรือไม่ ก็ Python  ยังไม่มีที่ใช้ Google APPs Script เลยมาลองโด้ดดู ปรากฏว่าได้

ซึ่งสิ่งสำคัญของ Google Apps Script คือเราไม่ต้องไปหา Web Server ยาก ขึ้นชื่อว่า Google นั้นเขาก็มาตรฐานการันตีของฟรีมีคุณภาพอยู่แล้ว

มาลองทำกันเลย ดีกว่าครับ

1. เข้าเว็บ https://notify-bot.line.me/my/





2. จากนั้น ก็เข้าสู่ระบบด้วย Account Line ของตนเองครับ

เมื่อเข้าสู่ระบบจะได้ดังภาพ หากมีการใช้บริการอยู่แล้วจะมีข้อมูลกลุ่มที่เราจัดการอยู่แล้วขึ้นมาให้เราทำการจัดการใหม่


3.  ถ้าต้องการดำเนินการจัดการใหม่
หลังจากที่ Login เข้ามาแล้วจะเห็นหน้าตา ว่างๆ ให้เราเลื่อนลงไปด้านล่างจะเจอ ปุ่มให้ Generate Tokenสำหรับใช้เป็น Key ในการรับส่งข้อความของ Web server เรากับ LINE API ครับ



หรือภาษาอังกฤษ ด้านล่างครับ
 เมื่อกดปุ่ม ออก Token แล้วจะปรากฏรูปภาพดังภาพด้านล่าง

ให้ดำเนินการกรอกชื่อ Token หรือชื่อของข่าวแจ้งเตือนที่เราจะไปโพสต์ใน Line กลุ่มจากนั้นเลือกกลุ่มที่เราต้องการสร้าง Token ที่จะโพสต์ในกลุ่ม ดังรูปภาพด้านล่างนี้ ในที่นี้ผมใช้ชื่อ ข่าวไอทีด่วน จะเอาไปโพสต์ที่ ชมรมคอมพิวเตอร์อำนาจเจริญ จากนั้น ก็คลิกที่ ออก Token



4.  จะได้รหัส Token ที่ Line Gen ออกมาให้ จากนั้นก็ให้ทำการก็อปปีโค้ดตามภาพ
     


5.  เมื่อได้โค้ดแล้ว เราก็เริ่มเขียนโปรแกรมที่ Google Apps Script ได้แล้วนะครับ ง่ายๆ ใช้ได้ทันที



    ไปที่ Google จากนั้นเข้าสู่ระบบ ด้วย Gmail หรือ เมล์ภายใต้ Google suit  (ไม่คุ้นใช่ไหมเอ่ย ก็ Google Education นั่นแหละครับพี่น้องครับ) เมื่อเข้าสู่ระบบ Google ได้แล้ว ก็ทำการคลิกที่ เก้าจุดมหัศจรรย์ ตามภาพ แล้วคลิกที่ Google Drive เพื่อเข้าไปสร้าง Google Script กัน



แล้วคลิกที่ New  หรือ ใหม่  แล้วหา Google script กัน ถ้าไม่มี ให้เพิ่มเข้ามา (อันนี้จะไม่อธิบาย ลองผิดลองถูกเอาเด้อครับพี่น้องครับ)



จากนั้นก็จะได้ส่วนของ Google Script เพื่อที่จะใช้ในการเขียนโปรแกรม บน Server ขนาดเรียกว่าใหญ่มากเลยล่ะ ไม่ต้องรอช้าครับ ทดสอบกันได้เลย 
ตามภาพทาง Google จะเตรียมไฟล์ ชื่อ code.gs ให้แล้ว พร้อมด้วย function ให้เราโค้ดโปรแกรมตามภาพนี้นะครับ 


function sendHttpPost(message){

  var token = [" ส่วนนี้ คือรหัส Token ที่ก็อปปี้มาจาก Line Token "];
  var options =
   {
     "method"  : "post",
     "payload" : "message= สวัสดีครับ ทดสอบ การแจ้งเตือนจากเว็บไซต์ได้แล้วนะครับ..",
     "headers" : {"Authorization" : "Bearer "+ token}

   };

   UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}

function myFunction(){
  var message="Hdskjfksdjfkdsjfkdsjkfjdskfj" ;
  sendHttpPost(message);
}

ก็อปปี้ โค้ดด้านบนแล้ววางที่ พื้นที่ code.gs ได้เลยนะครับ

6.  ดำเนินการ Run function โดยการเลือกฟังชั้่น แล้วกดที่สามเหลี่ยม ตามภาพอธิบายครับผม

สมมุติฟังก์ชันที่สร้างไว้ชื่อ sendHttpPost  ก็ให้เลือกตามนั้น
จากนั้นตามภาพด้านล่าง ให้กดปุ่ม Run 



ถ้าเรายังไม่ได้เพิ่ม Notify ในกลุ่มที่เราสร้างไว้ จะขึ้น Error สีแดงดังภาพครับพี่น้เองครับ




7.  ลืมขึ้นตอน หรือตั้งใจว่างั้นครับพี่น้อง เพราะจะได้รู้และจำว่าต้องทำตัวนี้ด้วยไม่งั้นไม่ผ่านแน่นอนครับผม ตามรูปภาพ ให้เราเไปที่ Line กลุ่มเรา จากนั้น ทำการเพิ่มเพื่อน หรือ Invite หรือ add friends to chat

จากนั้นให้เพิ่ม  Line  Notify เข้ามาในกลุ่ม
ตามภาพครับผม กด Ok 





 8.  กลับมาที่ Google Script กันใหม่ครับ ทำการ Run โดยคลิกที่ สามเหลี่ยม แล้วหากไม่มีอะไรเกิดขึ้น ให้เช็คที่ Line กลุ่มจะมีข้อความ จาก Notify ที่เราสร้างไว้โพสต์ข้อความล่าสุดขึ้นมาครับผม ดูตามภาพครับ



ขอแสดงความยินดีครับทุกท่านที่ดำเนินการจนสำเร็จ  เมื่อทำสำเร็จแล้ว เป็นหน้าที่ของเราแล้วว่าจะมีไอเดียอะไรที่จะนำสคริปนี้ไปใช้ให้เกิดประโยขน์ต่อองค์กรต่อไป ผมมีแนวคิดหากใครคิดเหมือนผมนะคือตอนนี้ ผมใช้แอพบล็อคเกอร์ของ Google เป็นเว็บ Server ทุกอย่างใช้ Blogger เกือบทั้งหมด ซึ่ง Blogger ก็มี API ไว้ให้บริการผ่าน Google Script ไว้มีโอกาสต่อไปจะมาผูก Blogger กับ Line ไว้ด้วยกันนะครับ จะทำให้มี สารสนเทศขององค์กรเกิดขึ้น และมีระบบแจ้งเตือนที่รวดเร็วทันใจกันฟรีๆ ต่อๆไป


หากท่านใดชอบก็ส่งกำลังใจกันหน่อยนะครับผม

ขอบพระคุณครับ