1. Giới thiệu về Google Apps Script
Trong lớp học lập trình này, chúng tôi sẽ giới thiệu cho bạn một trong những cách dễ nhất để viết mã truy cập vào các công nghệ dành cho nhà phát triển của Google. Tất cả đều được thực hiện bằng cách áp dụng JavaScript, một ngôn ngữ phát triển web chính thống. Bằng Google Apps Script, bạn sẽ viết mã để trích xuất địa chỉ đường phố từ một ô trong Google Trang tính, tạo Google Maps dựa trên địa chỉ đó, rồi gửi bản đồ dưới dạng tệp đính kèm bằng Gmail. Điểm hay nhất là gì? Chỉ cần 4 dòng mã.
Kiến thức bạn sẽ học được
- Cách sử dụng Google Apps Script với nhiều dịch vụ của Google, chẳng hạn như Google Trang tính, Google Maps và Gmail.
- Phát triển mã bằng trình chỉnh sửa trong trình duyệt cho Apps Script.
Bạn cần có
- Một trình duyệt web có quyền truy cập vào Internet
- Tài khoản Google (Tài khoản Google Workspace có thể yêu cầu quản trị viên phê duyệt)
- Hiểu biết cơ bản về Google Trang tính
- Có thể đọc Ký hiệu A1 của Trang tính
2. Khảo sát
Bạn sẽ sử dụng lớp học lập trình/hướng dẫn này như thế nào?
Bạn đánh giá thế nào về trải nghiệm của mình với các công cụ và API dành cho nhà phát triển của Google Workspace?
3. Tổng quan
Bây giờ bạn đã biết nội dung của lớp học lập trình này, vậy bạn sẽ làm gì chính xác?
- Tìm hiểu một chút về Apps Script (dựa trên JavaScript).
- Tạo bảng tính Google Trang tính.
- Nhập địa chỉ đường phố vào ô trên cùng bên trái (A1) của bảng tính.
- Tìm hiểu cách mở trình chỉnh sửa tập lệnh Apps Script cho mọi tài liệu.
- Chỉnh sửa, lưu và chạy mã Apps Script.
- Sử dụng Gmail để xem kết quả.
Bắt đầu nhé.
Google Apps Script là gì?
Google Apps Script là một nền tảng phát triển giúp bạn dễ dàng và nhanh chóng tạo các tập lệnh và ứng dụng nhỏ tích hợp với Google Workspace. Với Apps Script, bạn có thể:
- Viết mã bằng JavaScript và truy cập vào các thư viện tích hợp cho các ứng dụng Google Workspace như Gmail, Lịch, Drive, v.v.
- Không cần cài đặt gì cả – chúng tôi cung cấp cho bạn một trình soạn thảo mã ngay trong trình duyệt và các tập lệnh của bạn sẽ chạy trên máy chủ của Google.
- Bạn không cần lo lắng về các chủ đề phức tạp như bảo mật và quyền truy cập dữ liệu, vì nền tảng sẽ xử lý việc này cho bạn.
Bạn có thể dùng Apps Script để tạo nhiều ứng dụng, từ chatbot đến ứng dụng web. Một trong những mục đích sử dụng phổ biến nhất là mở rộng chức năng của bảng tính trên Google Trang tính. Trong phần còn lại của lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Apps Script để lấy dữ liệu từ bảng tính và kết nối dữ liệu đó với các dịch vụ khác của Google.
4. Tạo một tệp Google Trang tính và nhập địa chỉ đường phố
Trong một Google Trang tính mới, hãy nhập địa chỉ đường phố hợp lệ bằng cách làm theo các hướng dẫn sau:
- Tạo một Google Trang tính bằng đường liên kết tiện lợi này (sheets.google.com/create). Hoặc truy cập vào Google Drive (drive.google.com) rồi nhấp vào Mới > Google Trang tính > Bảng tính trống

- Trong bảng tính trống, hãy chuyển đến ô đầu tiên ở góc trên bên trái (A1). Nội dung này sẽ nằm ở cột A và hàng 1. Nếu cần xem lại, bạn có thể xem nội dung mô tả về ký hiệu A1 này.
- Nhập địa chỉ đường phố hợp lệ vào ô. Chọn một địa chỉ trên thế giới có vị trí chính xác bằng địa chỉ đường phố, mã bưu chính hoặc sự kết hợp giữa thành phố và tiểu bang/tỉnh. Sau đây là ví dụ về một địa chỉ ở Thành phố New York:

Đó là tất cả những gì bạn cần làm trong trang tính. Hãy mở trình chỉnh sửa và viết một số mã.
5. Chỉnh sửa mã Apps Script
Giờ đây, khi đã có một Google Trang tính mới, bạn có thể chỉnh sửa tập lệnh liên kết của trang tính đó. Hãy làm theo các hướng dẫn sau:
Mở trình chỉnh sửa tập lệnh
Trên thanh trình đơn, hãy chọn Tiện ích > Apps Script để mở trình soạn thảo mã trên trình duyệt cho Apps Script.
Trong một thẻ trình duyệt mới, trình soạn thảo mã sẽ cho thấy tập lệnh dựa trên vùng chứa mặc định cho trang tính. Một hàm mặc định có tên là myFunction() sẽ tự động được tạo và con trỏ của bạn sẽ được đặt bên trong hàm để bạn có thể bắt đầu.
Gửi email bản đồ địa chỉ trên Google Maps
Mã "mẫu" mà bạn nhận được là mã trống, vì vậy, hãy thay thế mã đó bằng ứng dụng của chúng ta.
- Trong trình chỉnh sửa tập lệnh, hãy thay thế khối mã
myFunction()mặc định bằng mã sau:
/** @OnlyCurrentDoc */
function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange('A1').getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('YOUR_EMAIL_ADDR', 'Map', 'See below.', {attachments:[map]});
}
- Thay thế địa chỉ email giữ chỗ (
'YOUR_EMAIL_ADDR') bằng một địa chỉ email hợp lệ. Ví dụ: friend@example.com. - Để lưu kịch bản, hãy nhấp vào biểu tượng Lưu
.
- Để đổi tên dự án Apps Script, hãy nhấp vào Dự án chưa có tên, nhập tiêu đề cho dự án rồi nhấp vào Đổi tên.
Đánh giá mã
Hãy xem xét 4 dòng của hàm sendMap() tạo nên toàn bộ ứng dụng. Điều thú vị là mã này đề cập đến 3 sản phẩm khác nhau của Google.
Dòng đầu tiên là một chú thích ảnh hưởng đến việc uỷ quyền:
/** @OnlyCurrentDoc */
Hầu hết các tập lệnh đều yêu cầu người dùng cấp một số quyền trước khi có thể chạy. Các quyền này kiểm soát những việc mà người dùng cho phép tập lệnh thực hiện. Dòng đầu tiên là một chú thích chứa chú thích không bắt buộc, hướng dẫn Apps Script giới hạn quyền truy cập vào bảng tính hiện tại (thay vì tất cả bảng tính của người dùng). Bạn nên thêm chú thích này khi chỉ làm việc với một tệp duy nhất.
Mã này sử dụng một khai báo hàm JavaScript thông thường cho sendMap():
function sendMap() {
Dòng tiếp theo gọi Dịch vụ bảng tính mà bạn có thể truy cập từ Apps Script thông qua đối tượng SpreadsheetApp. Trang tính được trả về sẽ được chỉ định cho một biến có cùng tên. Phương thức getActiveSheet() sẽ lấy một tham chiếu đến đối tượng trang tính hiện tại và lưu trữ đối tượng đó trong biến sheet.
var sheet = SpreadsheetApp.getActiveSheet();
Với đối tượng sheet, chúng ta tham chiếu đến dải ô (của một ô) trong ký hiệu A1 bằng getRange(). "Dải ô" là một nhóm ô, bao gồm cả một ô duy nhất như ô A1 (ô mà chúng ta đã nhập địa chỉ vào). Để tìm nạp nội dung bên trong dải ô, phương thức getValue() sẽ trả về giá trị của ô trên cùng bên trái trong dải ô và chỉ định giá trị đó cho biến address. Bạn cũng có thể thử thêm nhiều địa chỉ và đọc từ các ô khác nhau.
var address = sheet.getRange('A1').getValue();
Dòng mã thứ ba kết nối với Dịch vụ Maps của Google bằng đối tượng Maps. newStaticMap() tạo một đối tượng ánh xạ tĩnh và phương thức addMarker() sẽ thêm một "ghim" vào bản đồ bằng địa chỉ trong trang tính.
var map = Maps.newStaticMap().addMarker(address);
Cuối cùng, Gmail Service thông qua đối tượng MailApp sẽ gọi phương thức sendEmail() để gửi email có cả văn bản "Xem bên dưới" và hình ảnh bản đồ dưới dạng tệp đính kèm.
GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}
6. Chạy ứng dụng Google Trang tính, Maps và Gmail
Sau khi đặt tên và lưu, bạn có thể chạy hàm. Ở đầu trình chỉnh sửa, hãy đảm bảo bạn đã chọn sendMap() trong danh sách hàm rồi nhấp vào Chạy.
Một tính năng của Apps Script mà nhà phát triển đánh giá cao là bạn không phải viết mã uỷ quyền cấp cho chương trình quyền truy cập vào dữ liệu của người dùng. Mặc dù Apps Script quản lý việc này, nhưng người dùng ứng dụng của bạn vẫn cần cấp quyền cho tập lệnh để truy cập vào bảng tính và gửi email qua Gmail. Hộp thoại uỷ quyền đầu tiên có dạng như sau:

Nhấp vào Xem xét các quyền để tiếp tục.
Tiếp theo, bạn sẽ thấy hộp thoại OAuth2 yêu cầu cấp quyền truy cập vào trang tính và gửi email thay cho bạn:

Sau khi bạn cấp quyền, tập lệnh sẽ chạy cho đến khi hoàn tất.
Kiểm tra tài khoản email mà bạn đã gửi tin nhắn. Bạn sẽ thấy một email có chủ đề là "Bản đồ" và nội dung như sau:

Khi mở tệp đính kèm trong nội dung email, bạn sẽ thấy một Google Maps có ghim địa chỉ mà bạn đã nhập vào trang tính:

Chỉ với 4 dòng mã, bạn đã truy cập vào 3 sản phẩm khác nhau của Google theo một cách có ý nghĩa.
7. Tài nguyên khác
Đoạn mã có trong lớp học lập trình này cũng có trong kho lưu trữ GitHub tại github.com/googleworkspace/apps-script-intro-codelab. Dưới đây là các tài nguyên khác giúp bạn tìm hiểu sâu hơn về nội dung được đề cập trong lớp học lập trình này và khám phá những cách khác để truy cập vào các công cụ dành cho nhà phát triển của Google theo phương thức lập trình.
Tài liệu
- Trang web tài liệu về Google Apps Script
- Apps Script: Dịch vụ Gmail
- Apps Script: Dịch vụ bảng tính
- Apps Script: Dịch vụ Maps
Video
Tin tức và thông tin cập nhật
- Blog dành cho nhà phát triển Google Workspace
- Twitter: Google Workspace Developers (@workspacedevs)
Các lớp học lập trình khác
Cơ bản
- [Google Trang tính] Kiến thức cơ bản về Apps Script với Google Trang tính
- [API REST] Sử dụng Google Workspace và Google API để truy cập vào tệp và thư mục trong Google Drive
Bậc trung
- [Apps Script] Tiện ích bổ sung Google Workspace cho Gmail
- [Apps Script] Bot tuỳ chỉnh cho Hangouts Chat
- [API REST] Sử dụng Google Trang tính làm công cụ báo cáo cho ứng dụng của bạn
- [API REST] Tạo bản trình bày trên Google Trang trình bày bằng BigQuery API