Nếu tạo giao diện người dùng cho một tập lệnh, bạn có thể phát hành tập lệnh đó dưới dạng ứng dụng web. Ví dụ: tốt nhất là bạn nên trình bày tập lệnh cho phép người dùng lên lịch hẹn với các thành viên của nhóm hỗ trợ dưới dạng ứng dụng web để người dùng có thể truy cập trực tiếp vào tập lệnh đó từ trình duyệt của họ.
Cả tập lệnh độc lập và tập lệnh liên kết với ứng dụng Google Workspace đều có thể được chuyển thành ứng dụng web, miễn là đáp ứng các yêu cầu bên dưới.
Yêu cầu đối với ứng dụng web
Bạn có thể phát hành tập lệnh dưới dạng ứng dụng web nếu tập lệnh đó đáp ứng các yêu cầu sau:
- Tệp này chứa một hàm
doGet(e)
hoặcdoPost(e)
. - Hàm này trả về đối tượng dịch vụ HTML
HtmlOutput
hoặc đối tượng dịch vụ nội dungTextOutput
.
Tham số yêu cầu
Khi người dùng truy cập vào một ứng dụng hoặc một chương trình gửi cho ứng dụng một yêu cầu GET
HTTP, Apps Script sẽ chạy hàm doGet(e)
. Khi một chương trình gửi cho ứng dụng một yêu cầu HTTP POST
, Apps Script sẽ chạy doPost(e)
. Trong cả hai trường hợp, đối số e
đại diện cho một tham số sự kiện có thể chứa thông tin về bất kỳ tham số yêu cầu nào. Cấu trúc của đối tượng sự kiện được thể hiện trong bảng dưới đây:
Trường | |
---|---|
e.queryString |
Giá trị của phần chuỗi truy vấn trong URL hoặc name=alice&n=1&n=2 |
e.parameter |
Một đối tượng của các cặp khoá/giá trị tương ứng với các thông số yêu cầu. Chỉ giá trị đầu tiên được trả về cho các tham số có nhiều giá trị. {"name": "alice", "n": "1"} |
e.parameters |
Một đối tượng tương tự như {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Đường dẫn URL sau |
e.contextPath |
Không được sử dụng, luôn là chuỗi trống. |
e.contentLength |
Chiều dài của phần nội dung yêu cầu cho các yêu cầu POST hoặc 332 |
e.postData.length |
Tương tự như 332 |
e.postData.type |
Loại MIME của nội dung POST text/csv |
e.postData.contents |
Văn bản nội dung của phần nội dung POST Alice,21 |
e.postData.name |
Luôn là giá trị "postData" postData |
Ví dụ: bạn có thể truyền các tham số như username
và age
vào một URL như sau:
https://script.google.com/.../exec?username=jsmith&age=21
Sau đó, bạn có thể hiển thị các tham số như sau:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
Trong ví dụ trên, doGet(e)
trả về kết quả sau:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Triển khai tập lệnh dưới dạng ứng dụng web
Để triển khai tập lệnh dưới dạng ứng dụng web, hãy làm theo các bước sau:
- Ở trên cùng bên phải của dự án tập lệnh, hãy nhấp vào Deploy (Triển khai) > New deployment (Triển khai mới).
- Bên cạnh "Chọn loại", hãy nhấp vào Bật loại triển khai > Ứng dụng web.
- Nhập thông tin về ứng dụng web của bạn vào các trường trong phần "Cấu hình triển khai".
- Nhấp vào Triển khai.
Bạn có thể chia sẻ URL ứng dụng web với những người mà bạn muốn sử dụng ứng dụng, miễn là bạn đã cấp cho họ quyền truy cập.
Kiểm thử quá trình triển khai ứng dụng web
Để kiểm thử tập lệnh dưới dạng ứng dụng web, hãy làm theo các bước dưới đây:
- Ở trên cùng bên phải của dự án tập lệnh, hãy nhấp vào Deploy > Test deployments (Triển khai > Kiểm thử triển khai).
- Bên cạnh "Chọn loại", hãy nhấp vào Bật loại triển khai > Ứng dụng web.
- Trong phần URL của ứng dụng web, hãy nhấp vào Sao chép.
Dán URL vào trình duyệt và kiểm thử ứng dụng web.
URL này có đuôi là
/dev
và chỉ những người dùng có quyền chỉnh sửa tập lệnh mới có thể truy cập. Thực thể này của ứng dụng luôn chạy mã được lưu gần đây nhất và chỉ dùng để kiểm thử trong quá trình phát triển.
Quyền
Các quyền cho ứng dụng web sẽ khác nhau tuỳ thuộc vào cách bạn chọn thực thi ứng dụng:
- Thực thi ứng dụng dưới dạng tôi – Trong trường hợp này, tập lệnh luôn thực thi dưới dạng bạn, chủ sở hữu tập lệnh, bất kể ai truy cập vào ứng dụng web.
- Thực thi ứng dụng dưới dạng người dùng truy cập vào ứng dụng web – Trong trường hợp này, tập lệnh chạy dưới danh tính của người dùng đang hoạt động bằng ứng dụng web. Phương pháp cấp quyền này khiến ứng dụng web hiển thị email của chủ sở hữu tập lệnh khi người dùng uỷ quyền truy cập.
Nhúng ứng dụng web vào Google Sites
Để nhúng một ứng dụng web vào Google Sites, trước tiên, bạn phải triển khai ứng dụng đó. Bạn cũng cần URL đã triển khai từ hộp thoại Deploy
.
Để nhúng một ứng dụng web vào trang Trang web, hãy làm theo các bước sau:
- Mở trang Trang web mà bạn muốn thêm ứng dụng web.
- Chọn Chèn > Nhúng URL.
- Dán URL ứng dụng web rồi nhấp vào THÊM.
Ứng dụng web xuất hiện trong một khung trong bản xem trước của trang. Khi bạn phát hành trang, người xem trang web của bạn có thể cần phải uỷ quyền cho ứng dụng web trước khi ứng dụng này thực thi bình thường. Ứng dụng web trái phép hiển thị lời nhắc uỷ quyền cho người dùng.
Ứng dụng web và nhật ký duyệt web
Bạn nên có một ứng dụng web Apps Script mô phỏng một ứng dụng nhiều trang hoặc một ứng dụng có giao diện người dùng động được kiểm soát thông qua các tham số URL. Để thực hiện tốt việc này, bạn có thể xác định một đối tượng trạng thái để đại diện cho giao diện người dùng hoặc trang của ứng dụng, đồng thời đẩy trạng thái đó vào nhật ký duyệt web khi người dùng điều hướng ứng dụng. Bạn cũng có thể nghe các sự kiện nhật ký để ứng dụng web hiển thị giao diện người dùng chính xác khi người dùng di chuyển qua lại bằng các nút trình duyệt. Bằng cách truy vấn các tham số URL tại thời điểm tải, bạn có thể yêu cầu ứng dụng tạo giao diện người dùng một cách linh động dựa trên các tham số đó, cho phép người dùng khởi động ứng dụng ở một trạng thái cụ thể.
Apps Script cung cấp hai API JavaScript phía máy khách không đồng bộ để hỗ trợ việc tạo ứng dụng web được liên kết với nhật ký duyệt web:
google.script.history
cung cấp các phương thức cho phép phản hồi linh động đối với các thay đổi về nhật ký duyệt web. Điều này bao gồm: đẩy trạng thái (các Đối tượng đơn giản mà bạn có thể xác định) vào nhật ký duyệt web, thay thế trạng thái trên cùng trong ngăn xếp nhật ký và đặt hàm gọi lại trình nghe để phản hồi các thay đổi về nhật ký.google.script.url
cung cấp phương tiện để truy xuất các tham số URL và mảnh URL của trang hiện tại, nếu có.
Các API nhật ký này chỉ dành cho ứng dụng web. Các thành phần này không được hỗ trợ cho thanh bên, hộp thoại hoặc tiện ích bổ sung. Bạn cũng không nên sử dụng chức năng này trong các ứng dụng web được nhúng trong Google Sites.