Tự động tạo file Excel chứa đường dẫn và tên của danh sách file video từ folder Google Driver

Đây là 1 bài toán nhỏ trong 1 bài toán lớn, xin phép mô tả để các bạn hiểu rõ hơn về tip này.
Bài toán tổng thể như sau:

  1. Trong driver có nhiều thư mục chứa video, mỗi thư mục 100-300 video
  2. Viết plugin WordPress cho phép import post từ folder ảnh trên Google Driver. Post của WordPress sẽ lưu trữ link video để phát trên site bằng cách đọc file video từ Google Driver. Ảnh sẽ được search từ website A hoặc B theo tên của video lưu trữ để lấy về.

Bài toán:
Từ bài toán tổng thể trên, có 1 bài toán nhỏ cần giải quyết, đó là: Làm sao để đọc folder ảnh trên Google Driver để lấy link và tên của video?
Có thể dùng API, nhưng quá trình dùng API này sẽ làm quá trình import chậm đi rất nhiều, vì còn phải search ảnh theo tên video ( sẽ cần search ở website A hoặc B ). Do đó, để xử lý tốt nhất thì giải pháp đó là đọc từ 1 file có sẵn link và tên video. Vậy làm sao để có file này?

Giải pháp:
Qua research mình thấy Google Driver cho phép viết thêm hàm script để xử lý các vấn đề liên quan tới Google Driver.
Bước 1. Bạn vào Google Driver, tạo 1 file Excel trống. Sau đó chọn Công cụ -> Trình chỉnh sửa tập lệnh
b1
Bước 2: Sau khi bấm vào sửa tập lệnh, sẽ bật ra 1 window tab mới, bạn điền đoạn code sau vào :slight_smile:function generateLink() {

var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();

//Tạo 2 column có nội dung link, name
sheet.appendRow([“link”, “name”]);

var s=ss.getActiveSheet();
var c=s.getActiveCell();
var fldr=DriveApp.getFolderById(“ID_FOLDER_CUA_BAN”);
var files=fldr.getFiles();
var names=,f,str;

while (files.hasNext()) {
f=files.next();
str=f.getUrl();
name = f.getName();
names.push([name]);
data = [
f.getUrl(),
f.getName()
];
sheet.appendRow(data);
}

}
Ấn lưu sau đó ấn Chạy để đoạn code thực thi, file excel trống ban đầu sẽ tự động được lấy nội dung link và tên của file trong folder để import vào.


Bước 3: Đọc nội dung của file vừa tạo
Sau khi tạo file rồi, vậy làm sao để đọc file, mình bonus thêm bước này để các bạn có thể dùng khi cần, đọc file vừa được generate.
3.1 Lấy link public web để có thể đọc file từ url
Mở file Excel bạn tạo ban đầu, lúc này url link và name của file đã có. Bấm vào tệp(file) -> Xuất bản lên web ( Public to website)

3.2 Đọc nội dung file từ url public web bằng PHP
Sau khi có link public web từ bước 3.1, sử dụng code sau để đọc nội dung file, lấy link và tên file.

//Khai báo $file là đường dẫn public web của file bạn có ở bước 3.1
$file= 'https://docs.google.com/spreadsheets/d/e/5BACX-1vR0UJgbyTcHHtsLAdcNXRVSaQG65C-ZWtBefea5PCEeojhTirbXsF0mSs81IGDeA8njLjlHzFdrVk1A/pub?gid=0&single=true&output=csv';

if (($handle = fopen($file, 'r')) !== FALSE) { 
	$i = 0; 
	while (($lineArray = fgetcsv($handle, 4000, $delimiter, '"')) !== FALSE) { 
	  for ($j = 0; $j < count($lineArray); $j++) { 
	    $arr[$i][$j] = $lineArray[$j]; 
	  } 
	  $i++; 
	} 
	fclose($handle); 
	} 

$arr là mảng dữ liệu mà bạn cần. Lúc này sử dụng để cho bước tiếp theo.
Chúc các bạn thành công.

3 Likes