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ã để tiếp cận 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ủ đạo. Bằng cách sử dụ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ỉ đó, sau đó gửi bản đồ dưới dạng tệp đính kèm bằng Gmail. Điểm hay nhất là gì? Sẽ chỉ có bốn dòng mã.
Kiến thức bạn sẽ học được
- Cách sử dụng Google Apps Script với các 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ể cần phải được quản trị viên phê duyệt)
- Quen thuộc cơ bản với Google Trang tính
- Khả năng đọc Ký hiệu A1 trên 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 khi sử dụng các công cụ cho nhà phát triển trong Google Workspace và API?
3. Tổng quan
Giờ thì bạn đã biết nội dung của lớp học lập trình này, chính xác thì bạn sẽ làm gì?
- 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 của bảng tính (A1).
- Tìm hiểu cách mở trình chỉnh sửa Apps Script cho mọi tài liệu.
- Chỉnh sửa mã Apps Script, lưu và chạy mã đó.
- Hãy sử dụng Gmail để xem kết quả.
Chúng ta hãy bắt đầu.
Google Apps Script là gì?
Google Apps Script là một nền tảng phát triển giúp bạn nhanh chóng và dễ dàng tạo các tập lệnh cũng như ứng dụng nhỏ tích hợp với Google Workspace. Với Apps Script, bạn:
- Viết mã trong JavaScript và truy cập vào các thư viện tích hợp sẵn cho các ứng dụng của Google Workspace như Gmail, Lịch, Drive, v.v.
- Bạn không cần phải 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 của bạn và các tập lệnh của bạn sẽ chạy trên các máy chủ của Google.
- Bạn không cần phải lo lắng về những chủ đề phức tạp như quyền bảo mật và quyền truy cập dữ liệu, vì nền tảng này sẽ xử lý các vấn đề này thay cho bạn.
Bạn có thể dùng Apps Script để tạo nhiều ứng dụng, từ bot trò chuyện cho đến các ứng dụng web. Một trong những cách sử dụng phổ biến nhất là mở rộng chức năng của bảng tính 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ừ một bảng tính và kết nối bảng tính đó với các dịch vụ khác của Google.
4. Tạo Google Trang tính và nhập địa chỉ đường phố
Trong Google Trang tính mới, hãy nhập địa chỉ đường phố hợp lệ bằng cách làm theo hướng dẫn sau:
- Tạo một tệp Google Trang tính bằng đường liên kết tiện lợi này (sheets.google.com/create). Ngoài ra, bạn có thể 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). Giá trị này sẽ nằm trong cột A và hàng 1. Nếu cần làm quen lại, bạn có thể xem phần 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 cách sử dụng địa chỉ đường phố, mã zip/mã bưu chính hoặc tổ hợp thành phố và tiểu bang/tỉnh. Dưới đây là ví dụ về địa chỉ ở Thành phố New York:
Đó là tất cả những gì bạn phải 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 bạn đã có một tệp Google Trang tính mới, đã đến lúc chỉnh sửa tập lệnh ràng buộc của tệp. 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 chỉnh sửa mã của trình duyệt cho Apps Script.
Trong thẻ trình duyệt mới, trình soạn thảo mã sẽ hiển thị tập lệnh giới hạ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ẽ được tạo tự động và con trỏ sẽ được đặt bên trong hàm đó để bạn có thể bắt đầu.
Gửi địa chỉ qua Google Maps qua email
"Mẫu" mã bạn được cấp đang 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 đoạn 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 của phần giữ chỗ (
'YOUR_EMAIL_ADDR'
) bằng một địa chỉ hợp lệ. Ví dụ: friend@example.com. - Để lưu tập lệnh của bạn, hãy nhấp vào Lưu .
- Để đổi tên dự án Apps Script, hãy nhấp vào Dự án không có tiêu đề, nhập tên cho dự án của bạn rồi nhấp vào Đổi tên.
Xem xét đoạn mã
Hãy xem 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 tham chiếu đến 3 sản phẩm khác nhau của Google.
Dòng đầu tiên là nhận xé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. Những 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à nhận xét 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). Phương pháp hay nhất là đưa chú thích này vào khi bạn chỉ làm việc với một tệp duy nhất.
Mã này sử dụng phần 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 có thể truy cập từ Apps Script thông qua đối tượng SpreadsheetApp
. Trang tính trả về được gán cho một biến có cùng tên. Phương thức getActiveSheet()
lấy thông tin 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 dải ô (của một ô) trong ký hiệu A1 bằng getRange()
. Một "dải ô" là một nhóm các ô, bao gồm một ô duy nhất như ô A1
(ô mà chúng ta đã nhập địa chỉ). Để tìm nạp giá trị 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ỉ hơn 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 bằng cách sử dụng đối tượng Maps
. newStaticMap()
tạo một đối tượng bản đồ tĩnh và phương thức addMarker()
sẽ thêm một "ghim" vào bản đồ bằng cách sử dụng địa chỉ trong trang tính.
var map = Maps.newStaticMap().addMarker(address);
Cuối cùng, Dịch vụ Gmail thông qua đối tượng MailApp
sẽ gọi phương thức sendEmail()
để gửi email chứa 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, đã đến lúc chạy hàm. Ở đầu trình chỉnh sửa, hãy nhớ chọn sendMap()
từ danh sách hàm rồi nhấp vào Run (Chạy).
Một tính năng của Apps Script mà các nhà phát triển đánh giá cao là bạn không cần 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 phải cấp cho tập lệnh quyền truy cập vào bảng tính của họ 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 cửa sổ hộp thoại OAuth2 yêu cầu cấp quyền truy cập vào trang tính và thay mặt bạn gửi email:
Sau khi bạn cấp quyền, tập lệnh sẽ chạy đến khi hoàn tất.
Kiểm tra tài khoản email mà bạn gửi thư và bạn sẽ thấy một email có nội dung "Bản đồ" làm tiêu đề và thông báo trông giống như sau:
Khi mở tệp đính kèm trong email, bạn sẽ nhận được một Google Maps có ghim trên địa chỉ bạn đã nhập vào trang tính:
Chỉ với 4 dòng mã, bạn đã tiếp cận được 3 sản phẩm khác nhau của Google theo cách có ý nghĩa.
7. Tài nguyên khác
Mã có trong lớp học lập trình này cũng có tại 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 kỹ 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 truy cập lập trình vào các công cụ dành cho nhà phát triển của Google.
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: Maps Service
Video
Tin tức và các bản cập nhật
- Blog dành cho nhà phát triển Google Workspace
- Twitter: Nhà phát triển Google Workspace (@workspacedevs)
Lớp học lập trình khác
Cơ bản
- [Google Trang tính] Nguyên tắc cơ bản về Apps Script với Google Trang tính
- [API REST] Sử dụng Google Workspace và API của Google để truy cập tệp & các thư mục trong Google Drive
Bậc trung
- [Apps Script] Tiện ích bổ sung của 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 API BigQuery