พัฒนา Web Application ด้วย django ตั้งแต่การสร้าง Data Model, สร้างแบบฟอร์ม รวมถึงการสร้าง RESTFul API และ การส่งข้อมูลไปให้ Google Vision API ทำงาน แล้วส่งผลกลับมา
พัฒนา LINE Front-End Framework เพื่อใช้เป็น User Interface แบบ Chatbot
(ถ้าเตรียมทัน) จะสาธิตการพัฒนา Mobile Application ด้วย Google Flutter
สิ่งแรกที่ต้องมีคือ ตัว Video Player บนเว็บ ลอง Google ด้วยคำว่า “javascript video player” ดู มีหลายตัวให้เลือกใช้ แต่ในที่นี้ ขอทดลองกับ video.js (เว็บไซต์ https://videojs.com )
<head>
<link href="https://vjs.zencdn.net/7.6.5/video-js.css" rel="stylesheet">
<!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
<script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
</head>
<body>
<video id='my-video' class='video-js' controls preload='auto' width='640' height='264'
poster='MY_VIDEO_POSTER.jpg' data-setup='{}'>
<source src='MY_VIDEO.mp4' type='video/mp4'> <!-- แก้ตรงนี้ -->
<source src='MY_VIDEO.webm' type='video/webm'>
<p class='vjs-no-js'>
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
</p>
</video>
<script src='https://vjs.zencdn.net/7.6.5/video.js'></script>
</body>
จาก Code นี้ JavaScript จาะเรียกไฟล์ .MP4 จากไฟล์ชื่อ MY_VIDEO.mp4 ซึ่ง ถ้าเอา test.html นี้ไปวางบน Web Server ก็หมายความว่า เราต้องมีไฟล์ MY_VIDEO.mp4 ด้วย
ไฟล์ MP4 บน Google Drive
ตัวอย่างเช่น เราอาจอัดคลิปวิดีโอการสอน อยากจะเผยแพร่บนเว็บไซต์ของหน่วยงาน ผ่าน JavaScript Video Player อย่าง video.js ข้างต้น ก็สามารถทำได้ดังนี้
แชร์ไฟล์ดังกล่าว ให้เป็น Anyone with the link can View
แล้ว copy link นั้นมา หน้าตาประมาณนี้
https://drive.google.com/open?id=FILE_ID
จะเห็นคำว่า id= FILE_ID ตรงนี้ให้ Copy เก็บไว้
แต่การที่เราจะเอา Link นี้ไปใช้ใน Video Player ตรง ๆ ไม่ได้ เพราะมันเป็นการเรียกใช้ Google Drive ไม่ใช่การเรียก File Content
GoogleAPI
วิธีการที่จะ Get Content ของไฟล์ที่ต้องการออกมากจาก Google Drive สามารถเรียกผ่าน Google API ซึ่ง หากจะทำเองก็สามารถทำได้ มีพวก node.js ให้ใช้งานอยู่ แต่พบว่า สามารถเรียกใช้ www.googleapis.com ได้ โดยอ้างอิงจาก https://googleapis.github.io/
ในที่นี้ จะเรียกผ่าน Google Drive API ใน Version 3 รูปแบบ URL จะเป็นดังนี้
การใช้งาน Google API นั้น มีส่วนทั้งที่ต้องจ่ายเงิน และส่วนที่ใช้ฟรี แต่ถูกจำกัด Quota ในกรณี Google Drive API สามารถใช้ได้ฟรี แต่จะมี Quota อยู่ โดยดูได้จาก https://developers.google.com/drive/api/v3/about-sdk
ปัญหา: การแชร์พื้นที่จาก Google Drive กับ Google Share Drive นั้น เมื่อผู้ใช้ที่เราแชร์ไปให้ ทำการ Upload ไฟล์ขึ้นมา จะกินพืันที่ของใคร ?
มาทดลองกัน
Google Drive
User A สร้าง Folder ชื่อ “Test Upload” บน “Google Drive” แล้วแชร์ให้ User B สามารถแก้ไขได้ (edit)
User B เปิด Google Drive ของตนเอง แล้วเข้าไปใน Shared With Me ก็จะเห็น “Test Upload”
User B ทำการ Upload File จากนั้น ไปดูใน Detail จะพบว่า ไฟล์มีขนาด 945 KB และ ใช้พื้นที่ของตัวเองไป 945 KB ด้วย
กลับมาดูใน Google Drive ของ User A ซึ่งเป็นเจ้าของ (Owner) โฟลเดอร์ “Test Upload” พบว่า ไม่ได้ใช้ Quota พื้นที่จัดเก็บของ User A เลย เพราะ เจ้าของไฟล์ (File) คือ User B
และ แม้ User A จะเป็นเจ้าของ Folder ก็ทำได้เพียงแต่ เตะ User B ไม่ให้เห็น Folder แต่ ไม่สามารถ ถอนสิทธิ์ความเป็นเจ้าของ ของ User B ได้ (เศร้า)
Google Share Drive
ก่อนหน้านี้เรียกว่า Team Drive แต่เปลี่ยนชื่อเป็น Share Drive ซึ่ง เป็น Feature ของ G Suite for Education (และ G Suite ตามที่ Google กำหนด) มีสิทธิ์ สร้าง Share Drive
ผู้ใช้ขององค์กร (ในที่นี้คือ มหาวิทยาลัยสงขลานครินทร์) สามารถสร้าง Google Share Drive แล้ว Add Member เป็นผู้ใช้ที่ใช้ Google Account อื่น (รวมถึง Gmail ด้วย) เข้ามาใช้งานร่วมกันได้ โดย ความเป็นเจ้าของ Share Drive คือ องค์กร กล่าวคือ แม้ User A จะเป็นคนสร้าง
ต่อไป User A ทำการสร้าง Share Drive ตั้งชื่อว่า “Test Share Drive”
แล้วเพิ่ม User B มาเป็น Member ให้สิทธิ์เป็น Contributor (สิทธิ์ใน Share Drive จะมีหลายระดับกว่า Google Drive)
User B จะเห็น Share Drive จาก เมนู “Shared drives” (แต่ถ้า share จาก Google Drive จะเห็นใน “Shared with me”)
เมื่อ User B ทำการ Upload ไฟล์เข้าไป จะพบว่า ไม่ใช้ Quota พื้นที่ User B เลย!!
ซึ่ง จะเป็น Case Sensitive ซึ่งต้องพิมพ์ตัวพิมพ์ใหญ่/เล็ก ให้ถูกต้อง และบางทีอาจจะสับสนระหว่าง l (L – lower case) กับ เลข 1 หรือ I (I capital letter) ได้
จากนั้น เอาไปสร้าง Visualization แบบ Vertical Bar กำหนดให้ Y Axis เป็นจำนวน X Axis เป็น Username โดยที่ Group by geoip.country_name และ description ก็จะทำให้รู้ว่า ใครบ้างที่ มีการใช้งานนอกประเทศ และ เป็นการใช้งานแบบไหน