Category: Google Apps

  • Case Study: ระบบประเมินผลออนไลน์ด้วย Google Sheets แบบแก้ไขได้เฉพาะส่วนของตนเอง แต่มองเห็นของคนอื่นได้ด้วย

    โจทย์มีอยู่ว่า

    • ต้องการระบบประเมินผล Online ให้อาจารย์จากหลาย ๆ มหาวิทยาลัย จำนวน 5 ท่าน ประเมินผลการทำงาน ในมุมมองต่าง ๆ แยกตาม Sheet
    • และ ในแต่ละมุมมอง อาจารย์แต่ละท่าน สามารถเลือกตัวเลือกจาก Dropdown ในคอลัมน์ของตนเองในแต่ละหัวข้อย่อย
    • แต่ในขณะเดียวกัน สามารถมองเห็นได้ด้วยว่า อาจารย์ท่านอื่นให้คะแนนหัวข้อย่อยนั้นว่าอย่างไร แต่จะไม่สามารถแก้ไขของท่านอื่น หรือ แก้ไขส่วนอื่น ๆ ได้
    • มีระบบสรุปคะแนนอัตโนมัติ

    เริ่มกันเลย

    ลองคลิกไปดูตัวอย่างได้ที่นี่

    สร้าง Google Sheets โดยมีทั้งหมด 5 Sheets แต่ละ Sheet มีคอลัมน์แรก เป็นรายการที่จะประเมิน คอลัมน์ B – F เป็นส่วนที่ผู้ประเมินแต่ละท่านใช้ในการประเมิน

    ชีตที่ 1 -3 เป็น มุมมองในการประเมิน

    Sheet “มุมมองที่ 1”
    Sheet “มุมมองที่ 2”
    Sheet “มุมมองที่ 3”

    ชีตที่ 4 เป็น Rubric Score หรือ ค่าที่จะใช้ทำ Dropdown ด้วย V Lookup

    Rubric Score

    ชีตที่ 5 เป็น Summary เอาไว้แสดงภาพรวมการประเมิน (ใช้ในภายหลัง)

    Summary

    สร้าง Dropdown

    ไปที่ ชีต “มุมมองที่ 1” ที่เซล B7 (หัวข้อประเมินแรก ของผู้ประเมินคนแรก) แล้ว “คลิกขวา” เลือก Data Validation …

    จากนั้น ในบรรทัด On invalid data เลือก Reject input
    ในบรรทัด Criteria คลิกที่ช่องด้านหลัง

    แล้วไปคลิก ชีต “RubricScore” และเลือกส่วนที่จะมาแสดงใน Dropdown นั่นคือ “Not Met”, “Partially Met” และ “Met” แล้วคลิกปุ่ม OK

    จากนั้น กลับมาคลิกปุ่ม Save

    จากนั้น ก็ Copy เซล B7 ไปยังทุก ๆ ส่วนที่จะทำการประเมิน

    เพิ่มผู้ประเมินเป็น Editor

    คลิกปุ่ม Share แล้วกรอก Email Address ซึ่งเป็น Google Account ของผู้ประเมินทั้ง 5 คนลงไป ให้เป็น Editor จากนั้นคลิกปุ่ม Send

    ในขั้นตอนนี้ ทุกคนที่เป็น Editor สามารถเข้ามาแก้ไข ทุกส่วน ของ Google Sheets นี้ได้ ซึ่งไม่ใช่สิ่งที่ต้องการ ต่อไป จะเป็นการกำหนด ส่วนที่ แต่ละคนจะสามารถแก้ไขได้

    กำหนดส่วนที่ผู้ประเมินแก้ไขได้

    คิดเหมือนกับ การเจาะช่อง ให้เฉพาะส่วนที่กำหนดนี้ ให้มีการแก้ไขได้

    คลิกเมนู Tools > Protect sheet
    แล้วคลิก Except certain cells
    ในที่นี้คือ B:F

    แล้วเลือก Editor ทุกคน ให้สามารถ แก้ไขได้
    จากนั้นคลิกปุ่ม Done

    ตอนนี้ ทั้ง 5 คนจะสามารถแก้ไขสิ่งที่อยู่ในคอลัมน์ B-F ได้ แต่ยังมีปัญหาคือ อ.สมชาย สามารถแก้ไขข้อมูลในคอลัมน์ของ อ.สมหญิง ได้อยู่

    กำหนดให้ผู้ประเมินแก้ไขได้เฉพาะคอลัมน์ของตนเอง

    ต่อไป กำหนดให้ อ.สมศรี แก้ไขได้เฉพาะคอลัมน์ C ซึ่งเป็นของตนเองเท่านั้น
    เลือก คอลัมน์ C
    คลิกเมนู Data > Protected sheets and ranges …
    คลิกปุ่ม Set Permissions

    จากนั้น เลือกเฉพาะ email ของ อ.สมศรี เท่านั้นที่สามารถแก้ไขได้
    แล้คลิกปุ่ม Done

    ทำซ้ำกระบวนการนี้ กับ ผู้ประเมินทุกคน ให้แก้ไขได้เฉพาะของตนเองเท่านั้น
    ตอนนี้ อ.สมศรี จะเห็นหน้าจออย่างนี้
    กล่าวคือ แก้ไขได้เฉพาะส่วนของตนเองเท่านั้น

    Save เป็น Macro

    ทำเช่นนี้กับ มุมมองที่เหลือ หรือ จะ Save Macro ก็ได้
    โดยคลิก เมนู Tools > Macros
    จากนั้น ทำกระบวนการที่ต้องการให้บันทึกไปเรื่อย ๆ แล้ว Save
    แล้ว ค่อยไป Run Macro ที่สร้างขึ้น ในชีตที่ต้องการ

    Macro จะมีหน้าตาประมาณนี้

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีทำให้โปรไฟล์บน Google Scholar เป็น Public

    Google Scholar เป็นบริการหนึ่งของ Google ทำให้เรามีโปรไฟล์ 
    “อีกช่องทางหนึ่ง” เพื่อแสดงผลงานที่ได้รับการเผยแพร่ หรือตีพิมพ์ในที่ต่าง ๆ 

    อ่านเพิ่มเติม https://scholar.google.com/intl/en/scholar/about.html

    ปัญหาอยู่ที่ว่า ในการสร้างครั้งแรกโปรไฟล์ (Profile) ของท่าน จะยังไม่ Public หมายความว่า จากหน้า Google จะค้นหาไม่เจอ Google Scholar Profile ของท่านนั่นเอง ( พอดีมีอาจารย์ท่านหนึ่งถามมา เห็นว่าเป็นประโยชน์ จึงเขียนบันทึกนี้ไว้ให้ )

    วิธีการทำให้เป็น Public Profile

    จากหน้า Profile ของท่าน คลิกที่รูป ดินสอ (Edit) ด้านหลังชื่อ

    คลิก Make my profile public แล้วคลิกปุ่ม Save

    แต่ต้องรอสักหน่อย เคยอ่านเจอมาว่า ใช้เวลาประมาณ 4 weeks กว่าจะค้นหาบน Google เจอ

  • Grammarly For Chrome

    Blog ที่2 สำหรับปีนี้ ทางผู้เขียนก็อยากจะขอนำเสนอ Extension เจ๋งๆ ให้ได้รู้จักกันอีกสักอันละกันเนอะ

    เชื่อเลยว่าหลายๆคน ที่ไม่ถนัดในภาษาอังกฤษมากนัก (อย่างเช่นผู้เขียนนี่แหละ – -“) จะต้องกราบงามๆ

    ให้กับคนที่พัฒนาสร้างสรรค์ Extension ที่ชื่อว่า Grammarly ตัวนี้ขึ้นมาให้เราได้ใช้กัน … __/\__

    *** ถ้าพร้อมแล้วก็มาทำความรู้จัก Grammarly For Chrome กันเถอะ ***

    Grammarly เป็น Extension ที่จะทำหน้าที่คอยจับตามองในสิ่งที่เราพิมพ์ลงไปแบบ Real-time (ทันที)

    และจะคอยบอกให้เรารู้ ว่าเราพิมพ์ผิดคำไหน ตกตรงจุดไหน และที่สำคัญเจ้าตัวนี้มันจะแนะนำวิธีแก้ไขให้

    หรือบางทีก็จะมีการแสดงอธิบายเพิ่มเติมให้ด้วย ความฉลาดของเจ้าตัวนี้หลักๆ ที่จะช่วยเราได้อย่างเช่น

    การสะกดคำ การลืมเติม S หรือการใส่ . (dot) หรือการจัดวางเรื่องของรูปแบบประโยค การขึ้นต้นคำ เป็นต้น

    อะ ไม่ต้องบรรยายกันมากละ มาลองติดตั้ง แล้วก็ใช้งานจริงกันเลยดีกว่าาาา ถ้าพร้อมแล้วก็ ลุยยยย กันเลย

     

    *** วิธีติดตั้ง Grammarly For Chrome ***

    1.เปิด Google Chrome Browser เพื่อติดตั้ง Extension คลิกที่นี่ จากนั้นเลือกเพิ่ม Extension ดังกล่าว

     

     

     

     

     

     

     

     

     

    2. หลังจากเพิ่มส่วนขยายเรียบร้อยแล้ว ก็จะพบกับหน้าจอ Personalize Grammarly ดังรูป

    เราสามารถเลือกระบุได้ว่า ส่วนใหญ่แล้วเรื่องที่เราเขียนจะเกี่ยวกับด้านไหน และระบุได้ว่าทักษะ

    ที่เรามีเนี่ยอยู่ที่ระดับประมาณไหน แต่หากไม่ต้องการระบุใดๆ ก็สามารถกด Skip เพื่อข้ามได้เลย

     

     

     

     

     

     

     

     

    3.ถัดมาให้ Create Account เพื่อเข้าสู่ระบบ โดยเราสามารถจะเลือก with facebook หรือ with google

    ก็ได้นะสำหรับคนที่มี Account อยู่แล้ว หากนอกเหนือจากนี้ก็ระบุ Email ที่ต้องการใช้ไปได้เลย

     

     

     

     

     

     

     

     

    4.แท่น แท่น แท๊นนน เมื่อ Login เข้ามาแล้วก็จะพบกับหน้าจอ Welcom to Grammarly! แบบในรูปนะ

    หน้านี้ก็จะมีให้เราเลือกว่าจะใช้แบบ ฟรี หรือจะใช้แบบ Premium เอาจริงๆ ตัดสินใจได้ไม่ยากเลย

    คลิกลงไปแรงๆ ตรงที่เขียนว่า “Continue to Grammarly It’s Free” 555+ จะเสียเงินทำไม แค่ที่เค้าฟรี

    มาให้เราก็เพียงพอที่จะใช้ได้ในชีวิตประจำวันของเราแล้ววว !!!

     

     

     

     

     

     

     

     

    5. คราวนี้มาทดลองใช้ Extension ตัวนี้ในการส่ง E-mail กัน

    ปล..แต่จริงๆแล้ว ไม่ใช่แค่ใช้ในการพิมพ์ E-mail เท่านั้นนะ จะเขียน Blog หรือพิมพ์อย่างอื่นผ่าน Chrome

    ก็สามารถใช้ Extension ตัวนี้ได้เช่นเดียวกันนะเออ

    ตัวอย่างเช่น พิมพ์ข้อความ young people are talking less on their mobile ทดสอบโดยการพิมพ์ถูกบ้าง

    ผิดบ้าง ก็จะสังเกตุได้ว่าเจ้าตัว Grammarly ก็จะตรวจสอบคำที่คาดว่าจะไม่ถูกต้อง และขีดเส้นใต้ สีแดงเอาไว้

     

     

     

     

     

     

     

     

    6. หากเราต้องการแก้ไขคำที่เจ้าตัว Extension Grammarly แจ้งไว้ว่าอาจจะมีการสะกดคำผิด ก็สามารถทำได้

    โดยการคลิกลงบนข้อความนั้น ๆ ตัวอย่างเช่น คำว่า takling ที่เราได้ทดสอบโดยการพิมพ์แบบผิดๆ เอาไว้

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

    คำว่า takling ที่ถูกต้องก็ต้องเป็น talking เมื่อเลือกแล้วก็คลิกลงบน คำดังกล่าว (สีเขียว ที่แสดงขึ้นมา)

     

     

     

     

     

     

     

     

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

    และเช่นเดียวกัน หากมีมากกว่า 1 คำ ก็ทำซ้ำตามขั้นตอนก่อนหน้า เราก็จะได้คำที่ถูกต้อง ตรงตามรูปแบบประโยที่เราต้องการนะจ๊ะ

     

     

     

     

     

     

     

     

    8. และเมื่อพิจารณาแล้วเห็นว่า ข้อความของเราถูกต้องครบถ้วนกระบวนความแล้ว ให้คลิกตรงสัญลักษณ์ E-Mail

    เพื่อย้อนกลับมายังหน้าจอ E-Mail ของเรา เพียงเท่านี้ก็เรียบร้อย ได้ E-Mail ที่มีเนื้อหาถูกต้องตรงตามรูปแบบการสะกดคำ

    หรือรูปแบบประโยคสมบูรณ์ ง่ายมั้ยล๊าาาาา

     

     

     

     

     

     

     

     

    9. อ๊ะๆ อีกอย่างนึงนะจากรูปก่อนหน้า เราสามารถตั้งค่าให้กับเจ้าตัว Grammarly ได้ว่าต้องการให้

    ตรวจสอบอะไรบ้างใน Document ของเรา

     

     

     

     

     

     

     

     

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

    ทั้ง Blog , ตอบ comment , ส่ง E-mail หรืออื่นๆ เจ้าตัว Grammarly จิ๋วตอนนี้ก็น่าจะตอบโจทย์ ช่วยแก้ไขคำผิดง่ายๆ ได้บ้าง

    ไม่มากก็น้อยแหละ แต่หากคำไหนที่เราไม่มั่นใจจริง ๆ หรือพวกรายละเอียดเรื่องโครงสร้างยาก ๆ ก็ให้ใช้ช่องทางอื่น เสริมเข้ามาช่วยด้วย

    ก็น่าจะดีนะ อยากที่เค้าชอบพูดกันว่า “กันไว้ ดีกว่าแก้” ไง 555+ ….. แล้วพบกันใหม่ Blog หน้านะแจ๊ะ ทุกคนนนนนน 🙂

     

    ขอขอบคุณแหล่งข้อมูลอ้างอิง

     

     

  • Email tracking By Google Chrome Extension

    เมื่อวันเวลาหมุนเวียนมาบรรจบพบกันอีกครั้ง ก่อนการเขียนผล TOR ในปีนี้ ก็ได้เวลาที่เหล่าเราทั้งหลายจะมาเริ่มต้นเขียน Blog กันอีกครั้ง
    และเช่นเคยสิ่งที่ผู้เขียนมีโอกาสศึกษา ค้นคว้าเพิ่มเติม หรือทดลองใช้งาน โดยมากแล้วก็จะเกี่ยวพันกับหน้าที่การงานในปัจจุบันนั่นแล

    ซึ่งหน้าที่หลักที่ผู้เขียนต้องทำทุกๆ วัน นั่นคือการรับแจ้งและตอบปัญหาให้กับลูกค้าผ่านทาง E-Mail และต้องขอบอกเลยว่าสำหรับผู้เขียน
    การตรวจสอบว่าเมลล์ถูกส่งไปถึงปลายทางหรือมีการเปิดอ่านหรือไม่นั้น มันเป็นเรื่องที่จำเป็นมากๆ ในงาน IT เพราะนอกจากการโทรแล้ว
    อีกหนึ่งช่องทางหลักในการติดต่อสื่อสารระหว่างกัน แถมยังประหยัดรายจ่ายอีกต่างหาก นั่นก็คือการส่ง E-Mail นั่นเองแหละหนา

    โดยหนึ่งวิธีที่ง่ายที่สุดคือการติดตั้ง Extension บน Google Chrome และใน Blog นี้ผู้เขียนจะขอแนะนำให้ผู้อ่านได้รู้จักกับ
    Chrome Extension ที่มีชื่อว่า “Email Tracking for Gmail & Inbox” ต้องขอบอกว่าจิ๋วแต่แจ๋วนะจ๊ะออเจ้าทั้งหลาย !!

    Email Tracking คืออะไร ???
    เอาแบบสั้นๆ เลย มันคือตัว App ที่ไว้คอย Track (ติดตาม) ว่า E-Mail ที่เราได้ส่งหรือตอบกลับไปนั้น ได้ถูกเปิดอ่านแล้วหรือไม่นั่นเอง

    วิธีติดตั้ง Email Tracking for Gmail & Inbox

    1.เปิด Google Chrome Browser เพื่อติดตั้ง Extension คลิกที่นี่ จากนั้นเลือกเพิ่ม Extension ดังกล่าว

     

     

     

     

     

     

     

     

     

     

    2. จากนั้นให้เข้าสู่ระบบ Gmail เลือก Sign in with Google

     

     

     

     

     

     

     

     

     

     

    3.จากนั้นจะปรากฏหน้าต่างให้เรา อนุญาตให้ Mailtrack เข้าถึงบัญชีของเรา

     

     

     

     

     

     

     

     

     

     

    4.ถัดมาจะให้เราเลือกว่าจะใช้งานแบบไหน และระดับเราๆแล้ว จะเลือกอะไรได้ล่ะ เลือก Free เท่านั้นก็พอ !!

     

     

     

     

     

     

     

    5.ระบบก็จะบอกเราว่า ยินดีด้วย คุณติดตั้ง Mailtrack เรียบร้อยแล้ว จากนั้นให้คลิก “Go to my email”

     

     

     

     

     

     

     

     

     

    6.เมื่อเข้าสู่หน้าจอ E-Mail ของเราแล้วนั้นจะสั่งเกตุได้ว่าจะมี Icon ของตัว Mailtrack แสดงอยู่ตรงมุมบนขวา

     

     

     

     

     

     

     

     

     

    7.ในขั้นตอนต่อไปให้เราทดสอบโดยการเขียนและส่ง E-mail ไปยัง E-Mail อื่นที่เราสามารถเข้าไปเปิดอ่านเพื่อทำการทดสอบได้
    เมื่อส่งไปแล้วก็ให้ทดสอบโดยการไปเปิดอ่าน E-Mail ดังกล่าว และกลับมายัง E-Mail หลักที่เราใช้ส่ง จะสังเกตุได้ว่าจะมีการ
    แจ้งเตือนกลับมาจาก MailTrack Alert ที่เราตั้งค่าไว้

     

     

     

     

     

     

     

     

    8.ถ้ามีการเปิดอ่าน E-Mail ของเราที่ส่งออกไป ระบบจะมี Notification แจ้งเตือนมี E-Mail แจ้งสถานะกลับมา
    และในกล่องจดหมายที่ส่งแล้ว จะมี Icon เครื่องหมายถูกคู่ซ้อนกันสีเขียว ตัวอย่างดังรูป

     

     

     

     

     

     

     

     

    สำหรับตัว Email Tracking for Gmail & Inbox ผู้ใช้สามารถเข้าไปดำเนินการตั้งค่าได้ โดยให้สังเกตุที่มุมบนด้านขวามือของตัว Gmail
    จากนั้นให้คลิกที่ Icon ของ Extension เพื่อเข้าไปในหน้า dashboard ของตัว mailtrack ในหน้านี้เราสามารถที่จะตั้งค่าต่าง ๆ ได้ตามต้องการ
    เช่น การเปิด-ปิด การแจ้งเตือน เป็นต้น

     

    อย่างไรแล้วหวังว่า Blog เล็กๆ Blog นี้จะมีประโยชน์บ้างกับใครหลายๆ คน ที่กำลังมองหาเครื่องมือเล็กๆ ที่สามารถนำมาปรับเพิ่มขีด
    ความสามารถหรือช่วยในการทำงานแต่ละวันของเรา สะดวก รวดเร็ว และถูกต้องมากยิ่งขึ้นค่ะ …. ^ ^

    ขอขอบคุณแหล่งข้อมูลอ้างอิง

  • ตรวจเช็คพื้นที่และเฝ้าระวังน้ำท่วมด้วย Google Earth

    #ฝนตกต่อเนื่อง ตรวจเช็คพื้นที่และเฝ้าระวังน้ำท่วมด้วย Google Earth
    มาดูวิธีการเฝ้าระวังพื้นที่บ้านเรา จะเสี่ยงน้ำท่วมไหม? และต้องเฝ้าระวังพื้นที่รอบๆด้วยนะคับ
    #GoogleEarth #GIS #เฝ้าระวังน้ำท่วม
  • วิธีการใช้ Google Drive เป็น Private Git Repository

    git คือ distributed revision control system

    เรามักใช้ github.com สำหรับเก็บ source code แต่มัน public ซึ่ง บางทีเราก็ต้องการอะไรที่ private

    ต่อไปนี้ คือวิธีการใช้งาน Google Drive เพื่อสร้าง Private Git Repository

    1. ติดตั้ง Google Drive File Stream, git ให้เรียบร้อย
    2. ใน Google Drive สร้าง Directory ชื่อ git ขึ้นมาที่ My Drive
      กรณี Google Drive File Stream ก็จะเห็นที่
      G:\My Drive\git
    3. จากนั้น ก็สร้าง Working Directory  เช่น ที่ Documents
      ในภาพ สร้างไว้ใน Documents\firebase\fmsworkshop
      จากนั้น คลิก Git Bash Here
    4. ใช้คำสั่ง
      git init

      เพื่อสร้าง .git ใน Directory นี้ก่อน
      จากนั้นใช้คำสั่งนี้ ที่มี –bare เพื่อสร้าง Remore Repository บน Google Drive

      git init --bare "G:\My Drive\git\fmsworkshop.git"

    5. บน Google Drive File Stream ก็จะมี fmsworkshop.git ปรากฏขึ้น
      ซึ่งต่อไปก็สามารถ git push ขึ้นไปเก็บไว้ได้แล้ว
    6. ต่อไป ก็พัฒนาโปรแกรมไป
    7. แล้ว ก็ git push ตามปรกติครับ
      git add .
      git commit -m "some text"
      git push "G:\My Drive\git\fmsworkshop.git"

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีการ Upload ไฟล์ไปบน Google Drive File Stream ด้วย Google Client Library for Python

    Google Drive File Stream จริงๆแล้วก็คือการเปิดให้ PC ทั้ง Windows และ Mac สามารถ Map Drive จาก Google Drive มาเป็น G:\ หรืออะไรทำนองนั้น แต่ปัจจุบัน (September 2017) บน Windows Server ซึ่งใช้ Secure Boot จะไม่สามารถติดตั้ง Client ได้ และ Ubuntu Server ก็ยังไม่มีตัวติดตั้ง ดังนั้น ในภาพของผู้ดูแลระบบ ไม่สามารถใช้ความสามารถนี้ได้ … โดยตรง

    ส่วนใน Windows Desktop ทั่วไปก็จะติดตั้งได้ แม้ว่า จากคำโฆษณา จะบอกว่าผู้ใช้สามารถใช้งานได้ แม้พื้นที่บน Local Drive ไม่เยอะ แต่เอาเข้าจริง ด้วยความสามารถที่จะใช้งาน Offline ได้บ้าง ทำให้ Client ต้อง Cache ไฟล์ที่ใช้งานด้วยเช่นกัน และหาก upload ไฟล์ขนาดใหญ่ จาก Local Drive ไปเก็บใน G:\ ข้างต้น ก็จะทำให้ต้องเสียพื้นที่ในขนาดเท่าๆกันไปด้วย เช่น ใน Local Drive มีไฟล์ที่จะ Backup ขึ้นไป ขนาด 1 GB บน C:\ เมื่อทำการ Copy ไปยัง G:\ ก็จะเสียพื้นที่อีก 1 GB ด้วยเช่นกัน

    ทางออกก็คือ ใช้ความสามารถของ Google Client Library ทำการ Upload ไฟล์ขึ้นไปโดยตรง เท่าที่ทดลองมา จะไม่ได้ Cache บน Local Drive ทำให้สามารถ Upload ไฟล์ขนาดใหญ่ได้ โดยไม่เสียพื้นที่เพิ่มแบบ Client ข้างต้น

    วิธีการใช้งาน Python เพื่อ Upload File ขึ้น Google Drive File Stream

    1. ผมเขียน Code เอาไว้ ชื่อ upload2gdrive.py ไว้บน GitHub (https://github.com/nagarindkx/google) สามารถดึงมาใช้งานได้โดยใช้คำสั่ง
      clone https://github.com/nagarindkx/google.git
      cd google
    2. สร้าง Project, Credential ตาม “ขั้นที่ 1” ในบทความ การใช้งาน Google Drive API ด้วย Google Client Library for Python ซึ่งจะได้ไฟล์ Client Secret File มา ให้แก้ไขชื่อเป็น “client_secret.json” แล้ว นำไปไว้ใน directory “google” ตามข้อ 1
    3. วิธีใช้คำสั่ง
      ดูวิธีใช้

      python upload2gdrive.py --help

      Upload ไฟล์ จาก /backup/bigfile.tar,gz

      python upload2gdrive.py --file /backup/bigfile.tar.gz

      บน Windows ก็สามารถใช้งานได้ ด้วยคำสั่ง

      python upload2gdrive.py --file D:\backup\bigfile.tar.gz

      หากต้องการระบุตำแหน่ง Folder บน Google Drive ที่ต้องการเอาไฟล์ไปไว้ ให้ระบุ Folder ID

      python upload2gdrive.py --file /backup/bigfile.tar.gz ----gdrive-id xxxxxxxbdXVu7icyyyyyy

      หากต้องการระบุ Chunk Size (ปริมาณข้อมูลที่จะแบ่ง Upload เช่น ไฟล์ 1 GB หากกำหนด Chunk Size เป็น 100MB โปรแกรมจะแบ่งข้อมูลเป็น 10 ส่วน — ขนาดที่เล็กที่สุดคือ 1 MB และค่า Default คือ 100 MB)

      python upload2gdrive.py --file /backup/bigfile.tar.gz ----gdrive-id xxxxxxxbdXVu7icyyyyyy --chunk-size 100
    4. ผลการทำงานจะประมาณนี้

      ใน Google Drive ที่กำหนด ก็จะมีไฟล์ปรากฏอยู่

    หวังว่าจะเป็นประโยชน์ครับ

    PS: ในบทความต่อไป จะมาอธิบายว่า เขียนขึ้นมาได้อย่างไร โปรดติดตามชม

  • การใช้งาน Google Drive API ด้วย Google Client Library for Python

    ในบทความนี้ จะแนะนำวิธีการเขียน Python เพื่อติดต่อกับ Google Drive API ทาง Google Client Library ซึ่ง จะใช้ REST v2 [1] เนื่องจาก ใน REST v3 ยังหาทางแสดง Progress ไม่ได้ (หากได้แล้วจะมา Update นะ)

    สิ่งต้องมี

    1. Python 2.6 ขึ้นไป
    2. PIP Package Management Tool
    3. เครื่องต้องต่อ Internet ได้
    4. แน่นอน มี Google Account

    ขั้นที่ 1: เปิดใช้ Drive API

    เปิด URL https://console.cloud.google.com แล้วคลิก Select a project

    จากนั้นคลิกปุ่ม + เพือสร้าง Project

    ตั้งชื่อ Project แล้วคลิก Save

    เลือก Project ที่สร้างขึ้น เลือก API Library ที่ต้องการ ในที่นี้คือ Google Drive API

    แล้วคลิก Enable

    จากนั้น Create Credentials

    เลือกชนิดเป็น OAuth Client ID แล้วกรอกข้อมูลดังนี้

    สร้าง Consent Screen

    เลือก Application Type เป็น Web Application, ระบุ Name (จะแสดงตอนขอ Permission) แล้วตั้งค่า URL ทั้ง 2 อันเป็น http://localhost:8080

     

    และ สุดท้าย คลิก Download

    ก็จะได้ไฟล์ JSON มา ส่งนี้จะเรียกว่า “Client Secret File”  ให้เก็บไฟล์ไว้ใน Directory เดียวกันกับที่ต้องการจะเขียน Python Code โดยสามารถแก้ไขเปลี่ยนชื่อ เช่น ตั้งเป็น client_secret.json

    ขั้นที่ 2: ติดตั้ง Google Client Library

    ติดตั้งด้วย pip ตามคำสั่งต่อไปนี้

    pip install --upgrade google-api-python-client

    ขั้นที่ 3: เขียน Code เพื่อติดต่อ Drive API

    จาก Python Quickstart [1] เป็นการเริ่มต้นที่ดีมาก เราสามารถนำ Code มาเป็นจุดเริ่มต้นได้ โดยตัวอย่างจะทำการติดต่อไปยัง Google Drive แล้ว List รายการของไฟล์ 10 อันดับแรกออกมา

    ตัวอย่างที่ Google ให้มา จะอ้างอิงไปยัง Credentials Path ไปยัง directory “.credentials” ใน “Home Directory” ของผู้ใช้ แต่ในตัวอย่างที่จะแสดงต่อไปนี้ ได้แก้ไขให้ “Client Secret File” อยู่ที่ directory เดียวกับ python file และเมื่อทำการ Authorization แล้วก็จะได้ “Credential File” มาเก็บไว้ที่เดียวกัน

    Code ต้นฉบับ สามารถดูได้จาก https://developers.google.com/drive/v2/web/quickstart/python ในที่นี้จะเปลี่ยนเฉพาะส่วนที่ต้องการข้างต้น และ เขียน Comment เพื่ออธิบายเพิ่มเติมเป็นภาษาไทย (ซึ่งไม่สามารถเขียนลงไปใน Python Code ได้) โดยตั้งชื่อไฟล์ว่า listfile.py

    from __future__ import print_function
    ...
    # การกำหนด SCOPES ต้องสอดคล้องกับบริการที่เราจะใช้งาน
    SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
    
    # แก้ไข Client Secret File ให้สอดคล้องกับไฟล์ที่ได้จาก ขั้นตอนที่ 1
    CLIENT_SECRET_FILE = 'client_secret.json'
    # แก้ไข Application Name ตามต้องการ
    APPLICATION_NAME = 'Drive API Python Quickstart'
    
    ...
    def get_credentials():
    ...
     # ไม่ใช้
     # home_dir =os.path.expanduser('~')
     
     # เดิม อยู่ใน os.path.join(home_dir, '.credentials')
     # แก้ไขให้อยู่ที่ Current Working Directory เดียวกันเลย
     credential_dir = os.getcwd()
     ...
     # เดิม os.path.join(credential_dir,'drive-python-quickstart.json')
     # ตั้งชื่อ Credential ตามต้องการ 
     credential_path = os.path.join(credential_dir,'drive_credential.json')
    ...
    
    def main():
    ...
     credentials = get_credentials()
     http = credentials.authorize(httplib2.Http())
    
     # ตรงนี้สำคัญ จะต้องเลือกใช้ REST Version ที่ต้องการ
     # ในที่นี้ ใช้ REST v2
     service = discovery.build('drive', 'v2', http=http)
     
     # ส่วนของการเขียน Code
     # ตัวอย่างนี้ เรียกใช้ files().list()
     # โดยตั้งค่า maxResults เป็น 10 ก็คือ เรียกเฉพาะ 10 รายการแรก
     # อ้างอิงจาก https://developers.google.com/drive/v2/reference/files/list
     results = service.files().list(maxResults=10).execute()
    
     # จาก อ้างอิง จะเห็นได้ว่า files().list() นั้น Return หรือ Response
     # items[] ซึ่งมี element เป็น รายการของไฟล์
     items = results.get('items', [])
     
     # ตรวจสอบว่ามีไฟล์หรือไม่
     if not items:
       print('No files found.')
     else:
       # หากมีไฟล์อยู่
       print('Files:')
       # loop เพื่อแสดงไฟล์ที่มีอยู่ ในที่นี้ จะไม่เกิน maxResults ข้างต้น
       for item in items:
         # แสดงฟิลด์ title และ id
         # เพิ่มเติม .encode('utf-8') ด้วย
         print('{0} ({1})'.format(item['title'].encode('utf-8'), item['id']))
    
    if __name__ == '__main__':
     main()

    ขั้นที่ 4: Run

    ตอนนี้ใน Directory จะมีไฟล์

    • client_secrets.json
    • listfile.py

    ใช้คำสั่ง

    python listfile.py

    หากเป็นการ Run ครั้งแรก ซึ่งจะยังไม่มีไฟล์ drive_credential.json โปรแกรมก็จะทำตาม “flow” โดย ถ้า run command line บนเครื่องที่มี X Window ก็จะเปิด Web Page ไปยัง Google เพื่อ Authorization

    และเปิด Web นี้ ให้คลิกเลือก Account ที่จะติดต่อด้วย

    หน้า Consent Screen คืออย่างนี้ คลิกอนุญาต

    ผลที่ได้

    Reference:

    [1] https://developers.google.com/drive/v2/web/quickstart/python

     

  • การปรับเปลี่ยนรูปแบบการแสดงผลเส้นทางระหว่างพิกัดจุดบนแผนที่ Google Map APIs ด้วย DirectionsTravelMode

              ก่อนที่เราจะไปเริ่มเนื้อหาของบทความี้ ผู้เขียนต้องขอท้าวความเดิมตอนที่แล้วของบทความก่อน ซึ่งผู้เขียนได้พูดถึงวิธีการแสดงผลเส้นทางทางระหว่างพิกัดจุดบนแผนที่ Google Map APIs ด้วย DirectionsService ในเบื้องต้นไว้ (สามารถศึกษาเพิ่มเติมได้จากบทความ : การแสดงเส้นทางระหว่างพิกัดจุดบนแผนที่ Google Map APIs ด้วย DirectionsService ในเบื้องต้น )  สำหรับในบทความนี้ผู้เขียนจึงอยากต่อยอดการทำงาน และเพิ่มลูกเล่นให้กับการแสดงผลแผนที่ด้วยการปรับเปลี่ยนการกำหนดรูปแบบการแสดงผลของเส้นทางให้ผู้เยี่ยมชมเว็บไซต์  ซึ่งเราจะให้ผู้ใช้สามารถเลือกรูปแบบในการแสดงผลได้ว่า ต้องการดูเส้นทางในรูปแบบใดตามรูปแบบ Mode ที่ผู้ใช้เลือกมา เช่น เส้นทางเดิน ทางถนน หรือขนส่งสาธารณะ เป็นต้น โดยวิธีการดังกล่าวนี้เหมาะกับเว็บไซต์ที่มีความเกี่ยวข้องกับความต้องการที่ต้องการทราบเส้นทางในแต่ละรูปแบบ เพื่อเป็นประโยชน์ในการนำไปประยุกต์ใช้กับงานของแต่ละท่านได้ค่ะ

       ตัวอย่างผลลัพธ์ที่ได้จากบทความที่แล้ว 

    ซึ่งจากตัวอย่างโค้ดในบทความที่แล้ว การกำหนด DirectionsTravelMode เป็น DRIVIING ซึ่งในความเป็นจริงแล้วยังมีรูปแบบอื่นๆให้เลือกใช้ด้วยกันทั้งหมด 4 รูปแบบ ดังนี้

    DRIVING (Default):เป็นโหมดตั้งต้นให้หากไม่ได้มีการกำหนดไว้ ซึ่งเป็นโหมดที่แสดงเส้นทางการขับขี่ด้วยยานพาหนะ
    BICYCLING: เป็นโหมดสำหรับเส้นทางที่เตรียมไว้สำหรับผู้ขับขี่จักรยาน
    TRANSIT: เป็นโหมดสำหรับแสดงเส้นทางระบบขนส่งสาธารณะ เช่น  รถบัส รถไฟ หรือแม้แต่เครื่องบิน เป็นต้น
    WALKING: เป็นโหมดสำหรับแสดงเส้นทางการเดินถนน

              ซึ่งผู้เขียนจะขอยกตัวอย่างในส่วนของการเลือกรูปแบบเส้นทางและผลลัพธ์ของแต่ละรูปแบบ ดังตัวอย่างโค้ดต่อไปนี้

    • การกำหนดรูปแบบของเส้นทางในการแสดงผลบนแผนที่
    1. โค้ด Javascript
       <script type="text/javascript">
      function initialize() {
       // ประกาศเรียกใช้งาน DirectionsService เพื่อการแสดงผลให้มีลักษณะเป็น Global
       window.directionsService = new google.maps.DirectionsService();
       window.directionsDisplay = new google.maps.DirectionsRenderer();
       var map;
       var bounds = new google.maps.LatLngBounds();
       var mapOptions = {
       mapTypeId: 'roadmap'
       };
      
      // แสดงผลแผนที่ในหน้าจอตาม Element ที่กำหนด
       map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
       map.setTilt(45);
      
      // กำหนดพิกัดจุดให้กับจุดเริ่มต้นและเส้นสุด
       window.markers = [
       ['Place1', 51.501546, -0.142000],
       ['Place2', 51.512051,-0.091225]
       ];
      // ให้แสดงผลสิ่งที่ตั้งค่าไว้ในพื้นที่แผนที่ที่กำหนด
       directionsDisplay.setMap(map);
      // กำหนดค่าเริ่มต้นของรูปแบบให้เป็นเส้นทางการเดิน (walking mode)
       calcRoute();
      }
      // เป็นฟังก์ชั่นในการคำนวณเส้นทางระหว่างสองจุดพิกัดบนแผนที่และเลือกกำหนดค่า Mode ในการแสดงผล
       function calcRoute() {
        var selectedMode = document.getElementById('travelType').value;
        var request = {
       
        origin: new google.maps.LatLng(markers[0][1], markers[0][2]),
       
        destination: new google.maps.LatLng(markers[1][1], markers[1][2]),
      
      //// //กำหนดรูปแบบการแสดงผลเส้นทางโดยเริ่มต้นให้เป็นเส้นทางการเดิน(ตามรายการแรกที่เลือก)
        travelMode: google.maps.TravelMode[selectedMode]
        };
        
       directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
       directionsDisplay.setDirections(response);
       }
       });
       }
       </script>
    2. ส่วนของการแสดงผลใน body
      <body> 
      <div id="map_wrapper">
       <div id="map_canvas" class="mapping"></div>
      </div>
      <div id="travel_selector">
       <p><strong>Mode of Travel: </strong>
       <select id="travelType" onchange="calcRoute();">
       <option value="WALKING">Walking</option>
       <option value="BICYCLING">Bicycling</option>
       <option value="DRIVING">Driving</option>
       <option value="TRANSIT">Transit</option>
       </select></p>
      </div>
      </body>
    3. ผลลัพธ์ในแต่ละรูปแบบ
    • แบบที่ 1 DRIVING Mode :

     

    • แบบที่ 2 BICYCLING Mode:

    • แบบที่ 3 TRANSIT Mode:


    • แบบที่ 4 WALKING Mode:


                จากตัวอย่างจะเห็นได้ว่าเป็นพิกัดของประเทศในต่างแดน เนื่องจากก่อนหน้านี้ ผู้เขียนลองใช้พิกัดจุดบนพื้นที่ประเทศไทย แต่พบว่ามีบาง Mode ยังไม่รองรับ เช่น เส้นทางจักรยาน ซึ่งเมื่อเลือกกำหนดโหมดดังกล่าวจะไม่เห็นการเปลี่ยนแปลงใดๆ จึงหันไปยกตัวอย่างจาก London แทนเพื่อให้ผู้อ่านได้เห็นความแตกต่างในการแสดงผลแต่ละแบบได้ชัดเจนขึ้น แต่เพื่อไม่ให้เป็นการน้อยเนื้อต่ำใจกัน ผู้เขียนก็ได้ลองเอาพิกัดของพื้นที่ในประเทศไทยมาลองทำดูให้ผู้อ่านได้เห็นแถมมาด้วยว่าพื้นที่ของเราจะเห็นเส้นทางเป็นยังไงในแต่ละแบบกันบ้าง ดังนี้ค่ะ
      ตัวอย่างการแสดงเส้นทางระหว่างสนามบินสุวรรณภูมิและเขตจตุจักร
      1) แบบ Transit mode

       

      จะเห็นได้ว่า เมื่อคลิกที่รูปสัญลักษณ์เครื่องหมายคำพูด จะแสดงรายละเอียดเกี่ยวกับข้อมูลการขนส่งสาธารณะนั้นๆ เช่น รถเมล์สายใด รถไฟฟ้า BTS สายใด เป็นต้น

      2) แบบ Walking Mode


      3) แบบ Driving Mode

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


      แหล่งข้อมูลอ้างอิง :